簡體   English   中英

在Linux上需要每個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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM