From fff737998df537dc767fdc9e09c9c578c20ac5dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Otto=20Kr=C3=B6pke?= Date: Mon, 10 Jul 2023 01:58:10 +0200 Subject: [PATCH] move global Name Tables MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jan-Otto Kröpke --- wmi/perflib/nametable.go | 10 +++++++++- wmi/perflib/perflib.go | 13 ------------- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/wmi/perflib/nametable.go b/wmi/perflib/nametable.go index 8b7afa48..3bc44961 100644 --- a/wmi/perflib/nametable.go +++ b/wmi/perflib/nametable.go @@ -6,6 +6,14 @@ import ( "strconv" ) +// Initialize global name tables +// TODO: profiling, add option to disable name tables if necessary +// Not sure if we should resolve the names at all or just have the caller do it on demand +// (for many use cases the index is sufficient) + +var CounterNameTable = *QueryNameTable("Counter 009") +var HelpNameTable = *QueryNameTable("Help 009") + func (p *perfObjectType) LookupName() string { return CounterNameTable.LookupString(p.ObjectNameTitleIndex) } @@ -27,7 +35,7 @@ func (t *NameTable) LookupIndex(str string) uint32 { return t.byString[str] } -// Query a perflib name table from the registry. Specify the type and the language +// QueryNameTable Query a perflib name table from the registry. Specify the type and the language // code (i.e. "Counter 009" or "Help 009") for English language. func QueryNameTable(tableName string) *NameTable { nameTable := new(NameTable) diff --git a/wmi/perflib/perflib.go b/wmi/perflib/perflib.go index 1aadd292..3a64c27c 100644 --- a/wmi/perflib/perflib.go +++ b/wmi/perflib/perflib.go @@ -123,9 +123,6 @@ import ( // TODO: There's a LittleEndian field in the PERF header - we ought to check it var bo = binary.LittleEndian -var CounterNameTable NameTable -var HelpNameTable NameTable - const averageCount64Type = 1073874176 // Top-level performance object (like "Process"). @@ -263,16 +260,6 @@ func queryRawData(query string) ([]byte, error) { } } -func init() { - // Initialize global name tables - // TODO: profiling, add option to disable name tables if necessary - // Not sure if we should resolve the names at all or just have the caller do it on demand - // (for many use cases the index is sufficient) - - CounterNameTable = *QueryNameTable("Counter 009") - HelpNameTable = *QueryNameTable("Help 009") -} - /* Query all performance counters that match a given query.