如何衡量我os/exec在Golang中通过程序包运行的可执行文件使用的内存量?最好通过操作系统本身来做到这一点吗?
os/exec
您需要通过操作系统本身来执行此操作。如果您在plan9或posix上,则Go将以所返回的结构从操作系统返回使用值ProcessState.SysUsage()。
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详细信息。
man getrusage