** Copyright (C) 2001-2025 Zabbix SIA
** This program is free software: you can redistribute it and/or modify it under the terms of
** the GNU Affero General Public License as published by the Free Software Foundation, version 3.
** This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
** without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
** See the GNU Affero General Public License for more details.
** You should have received a copy of the GNU Affero General Public License along with this program.
** If not, see <https://www.gnu.org/licenses/>.
"golang.zabbix.com/agent2/pkg/win32"
func BenchmarkCreateQuery(b *testing.B) {
for i := 0; i < b.N; i++ {
_, _ = GetCounterInt64(CounterPath(ObjectSystem, CounterSystemUptime))
func BenchmarkReuseQuery(b *testing.B) {
query, _ := win32.PdhOpenQuery(nil, 0)
counter, _ := win32.PdhAddCounter(query, CounterPath(ObjectSystem, CounterSystemUptime), 0)
for i := 0; i < b.N; i++ {
_ = win32.PdhCollectQueryData(query)
_, _ = win32.PdhGetFormattedCounterValueInt64(counter)
_ = win32.PdhCloseQuery(query)
func TestConvertPath(t *testing.T) {
path, err := ConvertPath(CounterPath(ObjectSystem, CounterSystemUptime))
fmt.Printf("error: %s", err)
fmt.Printf("path: %s", path)