当前位置: 首页 > 面试题库 >

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

爱炯
2023-03-14
问题内容

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


问题答案:

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



 类似资料:
  • 我的机器中有JDK_1.6,我删除了它并安装了JDK_1.7。因此,在安装JDK_1.7之后,我不能双击运行我的jar文件。我可以使用命令提示符运行相同的文件。 安装JDK_1.7后,我使用Java7从eclipse运行程序,并使用相同的Java7导出jar。 有人能帮我解决这个问题吗?

  • 问题内容: 我正在寻找在使用本地文件对Golang进行测试时应该使用的最佳实践。 通过使用本地文件,我的意思是为了测试功能,应用程序需要一些本地文件,因为该应用程序经常从这些文件中读取数据。 我不确定是否应该在使用ioutil包tempdir和tempfile函数运行测试之前自己写临时文件,还是创建一个测试文件夹? 然后从里面的内容中读取 谢谢 问题答案: 这是我当前的测试设置: 特定于单个程序包

  • 终端中使用lldb运行可执行文件 进入lldb环境, 在终端内输入lldb回车 lldb 使用file命令, 将可执行文件包装成一个target (lldb) file test Current executable set to '/Users/shenyj/Documents/CodeForTest/staticOCLib/test' (x86_64). 运行可执行文件, 在刚刚的l

  • 问题内容: 我正在使用 map [string] string 优化代码,其中 map 的值仅为“ A”或“ B”。因此,我认为显然, map [string] bool 更好,因为该地图可容纳约5000万个元素。 结果是: 在测试时,我发现有些奇怪,为什么带有很长字符串的 a2 使用8个字节,就像 一个 只有一个字母一样? 问题答案: 不会递归地进入数据结构,它只是报告传递的值的“浅”大小。引用

  • 我想比较一个函数的不同实现: 我得到的结果是,第一个度量值总是比第二个慢(

  • 本文向大家介绍详解JVM 运行时内存使用情况监控,包括了详解JVM 运行时内存使用情况监控的使用技巧和注意事项,需要的朋友参考一下 java 语言, 开发者不能直接控制程序运行内存, 对象的创建都是由类加载器一步步解析, 执行与生成与内存区域中的; 并且jvm有自己的垃圾回收器对内存区域管理, 回收; 但是我们已经可以通过一些工具来在程序运行时查看对应的jvm内存使用情况, 帮助更好的分析与优化我