如何測量進程使用的內存?進程很快就會退出,所以頂級公用程序無用。我嘗試使用valgrind的地塊,但它只測量通過malloc/new + stack分配的內存,而不是例如靜態變量。 - 頁面作爲堆並沒有幫助,因爲它也顯示映射的內存。Linux進程分配的內存使用情況
0
A
回答
1
可能對你有用的東西是使用一個腳本,它會在程序啓動後立即反覆運行'ps'。我已經編寫了以下適用於您的目的的腳本,只需將頂部的變量替換爲具體的細節。它當前在後臺運行「netstat」(注意&符號),並在樣本之間以0.1秒的間隔對存儲器進行10次採樣,並將存儲器檢查的結果寫入文件。我已經在cygwin上運行了它,它可以工作(減去-o rss,vsz參數),我目前沒有訪問linux機器的權限,但如果由於某種原因它不能立即適應,它應該很容易適應工作。
#! /bin/bash
saveFileName=saveFile.txt
userName=jacob
programName=netstat
numberOfSamples="10"
delayBetweenSamples="0.1"
saveFileName=saveFile
i="0"
$programName &
while [ $i -lt $numberOfSamples ]
do
ps -u $userName -o rss,vsz | grep $programName >> $saveFileName
i=$[$i+1]
sleep $delayBetweenSamples
done
如果你的程序完成如此之快,在腳本執行它,並運行ps之間的延遲過長,你可能會考慮延遲運行程序,並使用了非常高的採樣率,試圖抓住它。你可以通過使用'睡眠'和兩個&符號來實現,如sleep 2 && netstat
。這將等待2秒鐘,然後運行netstat。
如果這聽起來不錯,也許嘗試在調試器中運行您的程序。我相信gdb有一些內存跟蹤選項,你可以看看。
相關問題
- 1. Linux內存使用情況
- 2. 如何跟蹤linux中進程的cpu /內存使用情況?
- 3. Linux中的內存使用情況R
- 4. Windows vs Linux的內存使用情況
- 5. Debian Linux上的內存使用情況
- 6. Linux:如何測量進程內線程的內存使用情況?
- 7. 在linux中爲進程分配內存
- 8. 將影響Java內存使用情況的Linux配置?
- 9. 如何在不分配內存的情況下測量.net應用程序的內存使用情況?
- 10. 用於記錄linux進程的cpu和內存使用情況的shell腳本
- 11. Linux:程序的CPU和內存使用情況
- 12. 在Linux中監視程序的內存使用情況
- 13. 限制Linux中程序的內存使用情況
- 14. Linux:程序的內存使用情況摘要
- 15. 使用本機進程的Java內存使用情況
- 16. 使用'top'查看進程的內存使用情況
- 17. Linux c應用程序內存使用情況
- 18. 如何正確測量Linux上的進程內存使用情況?
- 19. 進程的內存分配
- 20. Java中線程或進程的內存使用情況
- 21. 如何分析內存使用情況?
- 22. 內存使用情況分析
- 23. 分析Redis內存使用情況
- 24. 分析Android內存使用情況。
- 25. 如何在不分配內存的情況下使用ImageView
- 26. 在不使用malloc分配內存的情況下執行memcpy
- 27. R中的內存使用情況/分配
- 28. 使用進程ID獲取進程的實際內存使用情況
- 29. 測量分佈式應用程序的內存使用情況
- 30. 如何分析應用程序的內存使用情況
看這裏http://unix.stackexchange.com/questions/21836/how-to-find-out-total-memory-resource-usage-with-ps – LibertyPaul
你沒看過這個問題嗎?我不能使用ps,進程快速終止 –
嗨Jani,我的答案是否在爲你工作?我真的很想知道你是否需要更多的幫助。 –