使用golang测量可执行运行的内存使用情况

时间:2014-12-23 18:10:05

标签: memory go

如何衡量我在Golang中通过os/exec包运行的可执行文件所使用的内存量?通过操作系统本身做到这一点更好吗?

1 个答案:

答案 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了解详情。