chatGPT答: |
8v6.cn |
的程序
```go
package main
import (
"fmt"
"syscall"
"unsafe"
)
// 记录系统信息
type MEMORYSTATUSEX struct {
dwLength uint32
dwMemoryLoad uint32
ullTotalPhys uint64 // 物理内存总量
ullAvailPhys uint64 // 可用物理内存
ullTotalPageFile uint64
ullAvailPageFile uint64
ullTotalVirtual uint64 // 虚拟内存总量
ullAvailVirtual uint64 // 可用的虚拟内存量
ullAvailExtendedVirtual uint64
}
func main() {
memoryStatus := new(MEMORYSTATUSEX)
memoryStatus.dwLength = uint32(unsafe.Sizeof(*memoryStatus))
// 调用GlobalMemoryStatusEx得到系统内存信息
GlobalMemoryStatusEx := syscall.NewLazyDLL("kernel32.dll").NewProc("GlobalMemoryStatusEx")
GlobalMemoryStatusEx.Call(uintptr(unsafe.Pointer(memoryStatus)))
fmt.Printf("物理内存总量: %dM,可用物理内存 %dM\n", memoryStatus.ullTotalPhys/1024/1024, memoryStatus.ullAvailPhys/1024/1024)
fmt.Printf("虚拟内存总量: %dM,可用的虚拟内存量 %dM\n", memoryStatus.ullTotalVirtual/1024/1024, memoryStatus.ullAvailVirtual/1024/1024)
}
```
|