Memory 使用golang测量可执行运行的内存使用率

Memory 使用golang测量可执行运行的内存使用率,memory,go,Memory,Go,如何测量通过Golang中的os/exec包运行的可执行文件所使用的内存量?通过操作系统本身这样做更好吗?您需要通过操作系统本身这样做。如果您在plan9或posix上,Go将在返回的结构中为您返回操作系统的使用值 注意:不同的平台可能返回字节或千字节。查看man getrusage了解详细信息。实时还是执行后/usr/bin/time-f“%M”ls如果需要结果,可以使用。是否有跨平台的解决方案?对实时解决方案有何想法?i、 在该过程存在之前。我认为cmd.ProcessState只有在程序终

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

您需要通过操作系统本身这样做。如果您在plan9或posix上,Go将在返回的结构中为您返回操作系统的使用值


注意:不同的平台可能返回字节或千字节。查看
man getrusage
了解详细信息。

实时还是执行后
/usr/bin/time-f“%M”ls
如果需要结果,可以使用。是否有跨平台的解决方案?对实时解决方案有何想法?i、 在该过程存在之前。我认为
cmd.ProcessState
只有在程序终止后才可用。@KevinBullaughey:请参阅。一切都可以在
/proc/$PID/smap
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)