From 439be0ddf3dbf533e17eeafed44e845e4d057c52 Mon Sep 17 00:00:00 2001 From: UUBulb <35923940+uubulb@users.noreply.github.com> Date: Thu, 5 Sep 2024 06:39:17 +0800 Subject: [PATCH] fix(gpu): memory leak on windows (#59) --- pkg/gpu/stat/stat_windows.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkg/gpu/stat/stat_windows.go b/pkg/gpu/stat/stat_windows.go index 7cb566f..d48a325 100644 --- a/pkg/gpu/stat/stat_windows.go +++ b/pkg/gpu/stat/stat_windows.go @@ -30,6 +30,7 @@ var ( pdhCollectQueryData = modPdh.NewProc("PdhCollectQueryData") pdhGetFormattedCounterArrayW = modPdh.NewProc("PdhGetFormattedCounterArrayW") pdhAddEnglishCounterW = modPdh.NewProc("PdhAddEnglishCounterW") + pdhCloseQuery = modPdh.NewProc("PdhCloseQuery") ) type PDH_FMT_COUNTERVALUE_DOUBLE struct { @@ -131,7 +132,9 @@ func GetGPUStat() (float64, error) { if err != nil { return 0, err } - values, err := getValue(1024, counter) + defer pdhCloseQuery.Call(uintptr(counter.Query)) + + values, err := getValue(8192, counter) if err != nil { return 0, err }