2009-06-02 93 views
6

有沒有一種方法可以記錄內存佔用量?在這個過程完成後我們仍然可以訪問它的 。在Linux中記錄內存佔用量

我檢查內存佔用的典型方法是這樣的:

$ cat /proc/PID/status 

但絕不它的進程完成後存在。

+0

服務器故障的類似問題:http://serverfault.com/questions/11754/running-batch-jobs-and-getting-a-peak-memory-usage-summary-for-each-job/12066 – MikeyB 2009-06-02 21:27:34

回答

5

,你可以這樣做:

watch 'grep VmSize /proc/PID/status >> log' 
在程序結束時,你會在 log有記憶的足跡列表隨着時間的推移

+0

@Nathan:謝謝。順便說一句,我怎樣才能在與我的命令「一起」的同時釋放你的命令?這樣兩者之間不會有任何時間延遲。 – neversaint 2009-06-02 13:00:47

4

Valgrind有一個內存分析器叫Massif它提供了有關程序的內存使用情況的詳細信息:

地塊是一個堆分析器。它通過定期獲取程序堆的快照來執行詳細的堆分析。它會生成一個圖表,顯示堆的使用情況,包括有關程序的哪些部分負責大部分內存分配的信息。該圖由一個文本或HTML文件進行補充,其中包含更多信息以確定分配最多內存的位置。地塊運行程序比正常慢20倍左右。