Linux中是否有任何可用图形或文本显示程序内存使用情况的工具?例如,如果我编写一个C++程序并想验证是否正确地在内存中分配和释放对象,是否有可用的应用程序可视化地显示正在实例化和删除的对象?当我在Visual Studio中编程时,我记得单步执行一个程序并使用调试窗格来监视内存使用情况,并且正在寻找类似于Linux中的内容。在Linux中监视程序的内存使用情况
10
A
回答
10
这不完全是你正在寻找,但看看Valgrind。
3
我通常运行top以关注整体内存使用情况。
0
conky(screenshots)是一款非常简单的计算机资源查看器,可在桌面壁纸上张贴。我一直关注内存使用和特定程序的使用。
2
确定进程在支持虚拟内存的操作系统上使用多少内存确实很困难。
问题不在于它使用了多少内存,而是多少是私有的,多少共享。
你可以看看/ proc/pid/maps或/ proc/pid/smaps(也许)。这些文件只会告诉你该进程映射到其地址空间的内存量,而不是它使用的内存量,并且绝对不会与系统中的其他进程共享多少内存。
甚至可以共享“私人”地图,因为fork()在写入时进行复制,所以私人页面仍然可以与其他一些(相关 - 通常是父级或兄弟)进程共享。而且,已经映射但从未使用的页面根本不会消耗空间。
可以看到每个映射的RSS(Resident Set Size),但只能告诉你有多少常驻(在RAM中,而不是交换到交换文件,尚未分配或尚未需求 - 从一个映射文件加载),现在共享多少和什么。
我想你最好的选择是计算私人匿名记忆的数量,在某些情况下这可能是好的。
2
1)首先运行
ps -u <your user id>
2)获取等你想从1个输出)来监视进程的PID
3)然后运行
top -p <the pid of the process you want to monitor>
3
while (/proc/<pid>/status)
echo "VMSize: `ps -p <pid> -o vsize=`" >> ! mem.out
pstack <pid> >> mem.out
sleep 10
end
grep VMSize mem.out | awk -F':' '{print $2}' | sort -r -n | head -1
会给你记忆力高峰。
还可以使用mem.out查看内存占用量和当前堆栈相关性。
相关问题
- 1. visualvm监视内存使用情况
- 2. Linux内存使用情况
- 3. 如何在Solaris上监视Perl中的内存使用情况?
- 4. 监视子进程的内存使用情况
- 5. 如何监控linux的内存使用情况?
- 6. 在linux中的java服务器CPU使用情况监视器
- 7. Windows vs Linux的内存使用情况
- 8. 监控内存使用情况
- 9. 使用dotMemoryUnit监视峰值内存使用情况
- 10. 如何监视Glassfish的内存使用情况?
- 11. 监视Windows中特定进程的内存和处理器使用情况?
- 12. 在C应用程序中剖析最大内存使用情况 - linux
- 13. Javascript-动态监视CPU /内存使用情况
- 14. 在Linux内核中平衡内存使用情况
- 15. 监控每个线程的内存使用情况
- 16. 监控进程的CPU和内存使用情况
- 17. 如何监控我的进程在Linux中的每个线程的内存使用情况?
- 18. 是否可以在Linux,C语言中不使用任何系统调用的情况下监视内存?
- 19. AIX中的程序内存监视
- 20. Linux进程分配的内存使用情况
- 21. 如何监控在Heroku上的内存使用情况(node.js的)
- 22. Android中的应用程序的内存(CPU)使用情况
- 23. 如何比较Linux和Windows上的应用程序内存使用情况?
- 24. 空应用程序中的内存使用情况
- 25. 由Gnome资源监视器报告的C++程序中的内存使用情况:混淆
- 26. 如何在不分配内存的情况下测量.net应用程序的内存使用情况?
- 27. 从应用程序内监视ASP.NET应用程序内存
- 28. 如何测量Linux中OpenMP代码的内存使用情况?
- 29. 从代码中监控内存使用情况
- 30. 如何查找Haskell中程序的内存使用情况
好的建议。看起来像一个非常有用的工具! – Chris 2009-02-19 01:16:55