我编写了一个程序,现在我需要测量它的性能,因此我用它time
来查找时间,但是是否有像时间这样的命令,我可以在其下运行我的程序并获取程序使用的内存量?(像什么time
一样)
我使用 C/C++、java、python 等进行编程,所以我需要一个统一的工具(如time
)来测量内存使用情况。
非常感谢!
答案1
ps
、、top
和atop
不会给你最准确的答案。这堆栈交换主题详细讨论了这个问题,并指出了写得很好的博客文章关于这个话题,详细说明了为什么会出现这种情况。
有更好的工具可以帮助你量化内存使用情况,并且valgrind
看起来是个好工具。您可以通过运行以下命令来安装:
sudo apt-get install valgrind
假设您有一个名为 hello_world 的程序:
gcc -o hello_world -g hello_world.c
要获取此程序的堆配置文件,您可以运行:
valgrind --tool=massif ./hello_world
这将向您的屏幕提供通用输出,实际结果将保存到同一目录中的文件中,其格式为:
massif.out.pid
其中 pid 是您在那个实例中运行 hello_world 的程序 id。
最好time
单独获取信息,即不要尝试同时运行valgrind
和。 stackoverflow 链接提供了其他替代方案。time