[英]Is there any tool that supports checkpoint based memory usage profiling for C++
[英]Need Memory Usage Tool per C++ function on Linux
我正在尋找一個運行時內存調試器,它能夠顯示Linux上每個函數或C ++代碼行的內存使用量(不僅僅是泄漏)。 我試圖追蹤程序內存使用量的峰值。 我使用過Valgrind和Purify,我發現沒有泄漏。 我預計,在那次峰值之后,內存使用率會恢復到我的程序的預期水平。
謝謝。
您可以使用valgrind工具包中的massif工具。
內存使用情況分析中的 “應用程序內存分析”部分提供了一個很好的概述,並指出:
要獲取函數代碼大小用法:
nm --demangle --print-size --size-sort --reverse-sort <your exec built with -g>
我過去曾經使用過valgrind幾次,但是如果你想抓住尖峰發生的地方,我會使用下面的黑客:
1)測量尖峰的大小(假設SPIKE = 1Gb)
2)(假設你的總RAM是4Gb)運行一個不同的自定義過程,它將精確分配3Gb + 1字節,並等到你按下一個鍵。 暫時擱置
3)運行您的應用程序代碼,看看您的內存分配將失敗的位置。 由於您的可用內存現在略低於您的SPIKE,當峰值發生時,它將無法分配所請求的內存
希望能幫助到你
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.