一尘不染

使用Golang测量可执行文件运行的内存使用情况

go

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


阅读 262

收藏
2020-07-02

共1个答案

一尘不染

您需要通过操作系统本身来执行此操作。如果您在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详细信息。

2020-07-02