當前位置:編程學習大全網 - 編程語言 - 怎樣發現內存泄露?

怎樣發現內存泄露?

壹、內存泄漏的檢查方法:

1.ccmalloc-Linux和Solaris下對C和C++程序的簡單的使用內存泄漏和malloc調試庫。

2.Dmalloc-Debug Malloc Library.

3.Electric Fence-Linux分發版中由Bruce Perens編寫的malloc()調試庫。

4.Leaky-Linux下檢測內存泄漏的程序。

5.LeakTracer-Linux、Solaris和HP-UX下跟蹤和分析C++程序中的內存泄漏。

6.MEMWATCH-由Johan Lindh編寫,是壹個開放源代碼C語言內存錯誤檢測工具,主要是通過gcc的precessor來進行。

7.Valgrind-Debugging and profiling Linux programs, aiming at programs written in C and C++.

8.KCachegrind-A visualization tool for the profiling data generated by Cachegrind and Calltree.

9.IBM Rational PurifyPlus-幫助開發人員查明C/C++、托管.NET、Java和VB6代碼中的性能和可靠性錯誤。PurifyPlus 將內存錯誤和泄漏檢測、應用程序性能描述、代碼覆蓋分析等功能組合在壹個單壹、完整的工具包中。

二、內存泄漏的簡單介紹:

內存泄漏也稱作“存儲滲漏”,用動態存儲分配函數動態開辟的空間,在使用完畢後未釋放,結果導致壹直占據該內存單元。直到程序結束。(其實說白了就是該內存空間使用完畢之後未回收)即所謂內存泄漏。

內存泄漏形象的比喻是“操作系統可提供給所有進程的存儲空間正在被某個進程榨幹”,最終結果是程序運行時間越長,占用存儲空間越來越多,最終用盡全部存儲空間,整個系統崩潰。所以“內存泄漏”是從操作系統的角度來看的。這裏的存儲空間並不是指物理內存,而是指虛擬內存大小,這個虛擬內存大小取決於磁盤交換區設定的大小。由程序申請的壹塊內存,如果沒有任何壹個指針指向它,那麽這塊內存就泄漏了。

  • 上一篇:天津理工大學怎麽樣?
  • 下一篇:壹竅不通怎麽學炒股
  • copyright 2024編程學習大全網