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. 应用程序池内存使用情况监视器
- 2. Redis - 监视内存使用情况
- 3. visualvm监视内存使用情况
- 4. Linux内存使用情况
- 5. 如何在Solaris上监视Perl中的内存使用情况?
- 6. 监视子进程的内存使用情况
- 7. Linux中的内存使用情况R
- 8. 限制Linux中程序的内存使用情况
- 9. 从进程开始到结束监视内存使用情况
- 10. 如何监控linux的内存使用情况?
- 11. 通过Java应用程序监视自己的内存使用情况
- 12. 监控ASP.NET应用程序内存和磁盘使用情况
- 13. 在linux中的java服务器CPU使用情况监视器
- 14. 监视R中的内存使用情况
- 15. Linux:程序的CPU和内存使用情况
- 16. Linux:程序的内存使用情况摘要
- 17. 监控内存使用情况
- 18. Windows vs Linux的内存使用情况
- 19. Debian Linux上的内存使用情况
- 20. Linux c应用程序内存使用情况
- 21. 使用dotMemoryUnit监视峰值内存使用情况
- 22. 如何监视Glassfish的内存使用情况?
- 23. 监视Windows中特定进程的内存和处理器使用情况?
- 24. 监视用户对saas应用程序的使用情况
- 25. 如何跟踪linux中进程的cpu /内存使用情况?
- 26. 在C应用程序中剖析最大内存使用情况 - linux
- 27. 监视器WCF服务内存使用情况
- 28. JVM监视器字符数组内存使用情况
- 29. Javascript-动态监视CPU /内存使用情况
- 30. iPad:活动监视器的“真实内存”与应用程序内存使用情况?
好的建议。看起来像一个非常有用的工具! – Chris 2009-02-19 01:16:55