如何衡量我在Golang中通过os/exec
包运行的可执行文件所使用的内存量?通过操作系统本身做到这一点更好吗?
答案 0 :(得分:9)
您需要通过操作系统本身来完成此操作。如果您使用的是plan9或posix,Go将在ProcessState.SysUsage()
返回的结构中为您返回操作系统中的使用值。
cmd := exec.Command("command", "arg1", "arg2")
err := cmd.Run()
if err != nil {
log.Fatal(err)
}
// check this type assertion to avoid a panic
fmt.Println("MaxRSS:", cmd.ProcessState.SysUsage().(*syscall.Rusage).Maxrss)
注意:不同的平台可能以字节或千字节为单位返回此值。查看man getrusage
了解详情。