日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

内存泄露检测工具比较

發(fā)布時間:2023/12/9 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 内存泄露检测工具比较 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

From: http://blog.163.com/zhuang_qianxin/blog/static/29765138201051092529107/


1.???? ccmalloc-Linux和Solaris下對C和C++程序的簡單的使用內(nèi)存泄漏和malloc調(diào)試庫。

2.???? Dmalloc-Debug Malloc Library.

3.???? Electric Fence-Linux分發(fā)版中由Bruce Perens編寫的malloc()調(diào)試庫。

4.???? Leaky-Linux下檢測內(nèi)存泄漏的程序。

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

6.???? MEMWATCH-由Johan Lindh編寫,是一個開放源代碼C語言內(nèi)存錯誤檢測工具,主要是通過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.???? Leak Monitor-一個Firefox擴展,能找出跟Firefox相關(guān)的泄漏類型。

10. IE Leak Detector (Drip/IE Sieve)-Drip和IE Sieve leak detectors幫助網(wǎng)頁開發(fā)員提升動態(tài)網(wǎng)頁性能通過報告可避免的因為IE局限的內(nèi)存泄漏。

11. Windows Leaks Detector-探測任何Win32應(yīng)用程序中的任何資源泄漏(內(nèi)存,句柄等),基于Win API調(diào)用鉤子。

12. SAP Memory Analyzer-是一款開源的JAVA內(nèi)存分析軟件,可用于輔助查找JAVA程序的內(nèi)存泄漏,能容易找到大塊內(nèi)存并驗證誰在一直占用它,它是基于Eclipse RCP(Rich Client Platform),可以下載RCP的獨立版本或者Eclipse的插件。

13. DTrace-即動態(tài)跟蹤Dynamic Tracing,是一款開源軟件,能在Unix類似平臺運行,用戶能夠動態(tài)檢測操作系統(tǒng)內(nèi)核和用戶進程,以更精確地掌握系統(tǒng)的資源使用狀況,提高系統(tǒng)性能,減少支持成本,并進行有效的調(diào)節(jié)。

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

15. Parasoft Insure++-針對C/C++應(yīng)用的運行時錯誤自動檢測工具,它能夠自動監(jiān)測C/C++程序,發(fā)現(xiàn)其中存在著的內(nèi)存破壞、內(nèi)存泄漏、指針錯誤和I/O等錯誤。并通過使用一系列獨特的技術(shù)(SCI技術(shù)和變異測試等),徹底的檢查和測試我們的代碼,精確定位錯誤的準(zhǔn)確位置并給出詳細的診斷信息。能作為Microsoft Visual C++的一個插件運行。

16. Compuware DevPartner for Visual C++ BoundsChecker Suite-為C++開發(fā)者設(shè)計的運行錯誤檢測和調(diào)試工具軟件。作為Microsoft Visual Studio和C++ 6.0的一個插件運行。

17. Electric Software GlowCode-包括內(nèi)存泄漏檢查,code profiler,函數(shù)調(diào)用跟蹤等功能。給C++和.Net開發(fā)者提供完整的錯誤診斷,和運行時性能分析工具包。

18. Compuware DevPartner Java Edition-包含Java內(nèi)存檢測,代碼覆蓋率測試,代碼性能測試,線程死鎖,分布式應(yīng)用等幾大功能模塊。

19. Quest JProbe-分析Java的內(nèi)存泄漏。

20. ej-technologies JProfiler-一個全功能的Java剖析工具,專用于分析J2SE和J2EE應(yīng)用程序。它把CPU、執(zhí)行緒和內(nèi)存的剖析組合在一個強大的應(yīng)用中。JProfiler可提供許多IDE整合和應(yīng)用服務(wù)器整合用途。JProfiler直覺式的GUI讓你可以找到效能瓶頸、抓出內(nèi)存泄漏、并解決執(zhí)行緒的問題。4.3.2注冊碼:A-G666#76114F-1olm9mv1i5uuly#0126

21. BEA JRockit-用來診斷Java內(nèi)存泄漏并指出根本原因,專門針對Intel平臺并得到優(yōu)化,能在Intel硬件上獲得最高的性能。

22. SciTech Software AB .NET Memory Profiler-找到內(nèi)存泄漏并優(yōu)化內(nèi)存使用針對C#,VB.Net,或其它.Net程序。

23. YourKit .NET & Java Profiler-業(yè)界領(lǐng)先的Java和.NET程序性能分析工具。

24. AutomatedQA AQTime-AutomatedQA的獲獎產(chǎn)品performance profiling和memory debugging工具集的下一代替換產(chǎn)品,支持Microsoft, Borland, Intel, Compaq 和 GNU編譯器。可以為.NET和Windows程序生成全面細致的報告,從而幫助您輕松隔離并排除代碼中含有的性能問題和內(nèi)存/資源泄露問題。支持.Net 1.0,1.1,2.0,3.0和Windows 32/64位應(yīng)用程序。

25. JavaScript Memory Leak Detector-微軟全球產(chǎn)品開發(fā)歐洲團隊(Global Product Development- Europe team, GPDE) 發(fā)布的一款調(diào)試工具,用來探測JavaScript代碼中的內(nèi)存泄漏,運行為IE系列的一個插件。

附錄:內(nèi)存泄漏的發(fā)生方式

1.???? 常發(fā)性內(nèi)存泄漏。發(fā)生內(nèi)存泄漏的代碼會被多次執(zhí)行到,每次被執(zhí)行的時候都會導(dǎo)致一塊內(nèi)存泄漏。

2.???? 偶發(fā)性內(nèi)存泄漏。發(fā)生內(nèi)存泄漏的代碼只有在某些特定環(huán)境或操作過程下才會發(fā)生。常發(fā)性和偶發(fā)性是相對的。對于特定的環(huán)境,偶發(fā)性的也許就變成了常發(fā)性的。所以測試環(huán)境和測試方法對檢測內(nèi)存泄漏至關(guān)重要。

3.???? 一次性內(nèi)存泄漏。發(fā)生內(nèi)存泄漏的代碼只會被執(zhí)行一次,或者由于算法上的缺陷,導(dǎo)致總會有一塊且僅有一塊內(nèi)存發(fā)生泄漏。

4.???? 隱 式內(nèi)存泄漏。程序在運行過程中不停的分配內(nèi)存,但是直到結(jié)束的時候才釋放內(nèi)存。嚴(yán)格的說這里并沒有發(fā)生內(nèi)存泄漏,因為最終程序釋放了所有申請的內(nèi)存。但是 對于一個服務(wù)器程序,需要運行幾天,幾周甚至幾個月,不及時釋放內(nèi)存也可能導(dǎo)致最終耗盡系統(tǒng)的所有內(nèi)存。所以,我們稱這類內(nèi)存泄漏為隱式內(nèi)存泄漏。

什么是系統(tǒng)資源?

當(dāng)應(yīng)用程序在Windows中運行時,Windows必須實時"跟蹤"該應(yīng)用程序的運行,并保留與之相關(guān)的許多信息,如按鈕、光標(biāo)、菜單的位置和位圖、窗口的狀況等,這些信息由Windows保留在一種叫堆的內(nèi)存塊中,堆的英文為Heap。簡單地說,堆是采用特殊機制管理的內(nèi)存塊。由Windows的一個系統(tǒng)內(nèi)核User.exe管理的堆叫做User資源堆(User Resource Heap),由另一個系統(tǒng)內(nèi)核Gdi.exe管理的堆叫做GDI資源堆(Graphical Device Interface Resource Heap,簡稱GDI Resource Heap),User資源堆和GDI資源堆合稱為系統(tǒng)資源堆(System Resource Heap),習(xí)慣上就把它們叫做系統(tǒng)資源(System Resource)。

  微軟將Windows的系統(tǒng)資源(堆)分為五個堆,其中User資源堆為三個,而GDI資源堆為兩個。

  三個User資源堆分別是:16位的用戶堆(User Heap,64KB);32位的窗口堆(Windows Heap,2MB);32位的用戶菜單堆(User Menu Heap,2MB)。

  兩個GDI資源堆分別是:16位的GDI堆(GDI Heap,64KB);32位的GDI堆(GDI,2MB)。

  從這里的系統(tǒng)資源分類和大小我們應(yīng)該明白,不管CPU是P4還是486,內(nèi)存是8M還是1G,所有Windows的用戶都擁有同樣大小的系統(tǒng)資源(堆),用戶不能自已增加或減少系統(tǒng)資源的大小,這是由操作系統(tǒng)決定的,與硬件檔次沒有任何關(guān)系。

  Windows的User資源堆和GDI資源堆的可用(Free)空間稱為可用 User資源和可用GDI資源,Windows中以百分?jǐn)?shù)表示它們,用戶可以選擇 "開始/附件/系統(tǒng)工具/系統(tǒng)信息",來實時查看它們的大小。

總結(jié)

以上是生活随笔為你收集整理的内存泄露检测工具比较的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。