Skip to content

Commit aa47e0f

Browse files
authored
Merge pull request #1720 from n4nn31355/feat/win_mem_commit_total
feat(mem): Add windows commit stats
2 parents de435c3 + 3f241a0 commit aa47e0f

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

mem/ex_windows.go

+12
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,10 @@ import (
1111

1212
// ExVirtualMemory represents Windows specific information
1313
// https://learn.microsoft.com/en-us/windows/win32/api/sysinfoapi/ns-sysinfoapi-memorystatusex
14+
// https://learn.microsoft.com/en-us/windows/win32/api/psapi/ns-psapi-performance_information
1415
type ExVirtualMemory struct {
16+
CommitLimit uint64 `json:"commitLimit"`
17+
CommitTotal uint64 `json:"commitTotal"`
1518
VirtualTotal uint64 `json:"virtualTotal"`
1619
VirtualAvail uint64 `json:"virtualAvail"`
1720
}
@@ -30,7 +33,16 @@ func (e *ExWindows) VirtualMemory() (*ExVirtualMemory, error) {
3033
return nil, windows.GetLastError()
3134
}
3235

36+
var perfInfo performanceInformation
37+
perfInfo.cb = uint32(unsafe.Sizeof(perfInfo))
38+
perf, _, _ := procGetPerformanceInfo.Call(uintptr(unsafe.Pointer(&perfInfo)), uintptr(perfInfo.cb))
39+
if perf == 0 {
40+
return nil, windows.GetLastError()
41+
}
42+
3343
ret := &ExVirtualMemory{
44+
CommitLimit: perfInfo.commitLimit * perfInfo.pageSize,
45+
CommitTotal: perfInfo.commitTotal * perfInfo.pageSize,
3446
VirtualTotal: memInfo.ullTotalVirtual,
3547
VirtualAvail: memInfo.ullAvailVirtual,
3648
}

0 commit comments

Comments
 (0)