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

Sam*_*hal 4 memory go

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

Jim*_*imB 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)
Run Code Online (Sandbox Code Playgroud)

注意:不同的平台可能以字节或千字节为单位返回此值.检查man getrusage细节.