如何获取Go中系统附加的内存/ RAM总量?我想尽可能使用本机代码。我找到了一个包装linux sysinfo命令的库。有更优雅的方式吗?
答案 0 :(得分:9)
除了runtime.MemStats,您可以使用gosigar来监控系统内存。
答案 1 :(得分:6)
cgo& linux解决方案
package main
// #include <unistd.h>
import "C"
func main() {
println(C.sysconf(C._SC_PHYS_PAGES)*C.sysconf(C._SC_PAGE_SIZE), " bytes")
}
答案 2 :(得分:1)
在我对此的研究中,我遇到了 memory package,它在许多不同的平台上实现了这一点。如果您正在寻找无需 CGO 的快速简便的解决方案,这可能是您的最佳选择。
来自自述文件:
package main
import (
"fmt"
"github.com/pbnjay/memory"
)
func main() {
fmt.Printf("Total system memory: %d\n", memory.TotalMemory())
}
Total system memory: 104857600