我正在尝试比较我的程序和示例程序之间的内存使用情况,该示例程序是使用 Linux 中的 ps 给出的
我的示例是用 c++ 编写的,我不确定如何在 linux 中使用 ps 来比较这两个程序使用了多少内存,非常感谢
答案1
你可以使用以下命令查看 Linux 中每个进程使用了多少内存
top | grep <name>
通常,如果您想列出所有正在进行的进程的统计信息,则可以使用“top”命令,而无需创建管道。
top
...输出类似这样的内容:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1050 root 20 0 350m 125m 89m R 82 6.3 4288:11 Xorg
4633 kocko 20 0 972m 309m 28m R 28 15.4 1677:33 amarok
30624 kocko 20 0 1044m 225m 28m S 12 11.2 3:03.23 eclipse
31356 kocko 20 0 434m 60m 22m S 2 3.0 603:29.59 chrome
1678 kocko 20 0 42972 7480 4764 S 2 0.4 146:14.10 compiz
答案2
你可能应该研究一下类似的分析工具瓦尔格林德用于内存分析。如果我没记错的话,Linux 内存管理器会在需要时向进程添加新内存,但会将不需要的内存分页而不是释放。因此,如果您使用类似free
和的工具,ps
您会发现本来不存在的内存泄漏。
更新 - 可能是ps 而不是内存管理器这就是“错误”所在。