我需要找出特定進程的內存使用情況。事實上,我需要找出我寫的應用程序中有任何內存泄漏。由於我們的系統在RAM中安裝了日誌文件夾,因此我無法使用memfree
或/proc/meminfo
。如何查找進程的內存泄漏?
我已經經歷了很多類似的查詢,有人建議使用ps aux
命令。我有點困惑於哪個參數給出了正確的內存使用情況,或者在幾個小時之後內存泄漏。 PS AUX
給出VSZ(virtual mem)
和RSS(resident set size)
。
我寫了一個示例程序,它分配4個字節的內存並取消分配它。運行程序後,似乎VSZ
分配內存時增加值,但取消分配時值不會減少。但RSS
值顯示正確,分配時增加,並在取消分配時減少。
任何人都可以確認使用RSS
值是否會指向代碼中的內存泄漏量?或者還有其他方法嗎?
操作系統無法確定應用程序中是否存在內存泄漏。你永遠不會從'ps'這樣的工具獲得那種信息,或者在'/ proc/meminfo'中找到它。這個問題的標題要求「進程的內存使用情況」,但文本詢問內存泄漏。這個問題的正確答案是[Dan](http://stackoverflow.com/a/16974256/194894):**使用[Valgrind](http://valgrind.org/)**我編輯過相應的標題。 – Flow