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