查看完整版本: 内存泄漏检测工具

xiaoshancom 2007-8-17 10:12

内存泄漏检测工具

[size=3][font=Calibri]1.[/font][url=http://www.inf.ethz.ch/personal/biere/projects/ccmalloc/][font=Calibri][color=#0000ff]ccmalloc[/color][/font][/url][font=宋体]-[/font][font=Calibri]Linux[/font][font=宋体]和[/font][font=Calibri]Solaris[/font][font=宋体]下对[/font][font=Calibri]C[/font][font=宋体]和[/font][font=Calibri]C++[/font][font=宋体]程序的简单的使用内存泄漏和[/font][font=Calibri]malloc[/font][font=宋体]调试库。[/font][/size]
[size=3][font=Calibri]2.[/font][url=http://dmalloc.com/][font=Calibri][color=#0000ff]Dmalloc[/color][/font][/url][font=宋体]-[/font][font=Calibri]Debug Malloc Library.[/font][/size]
[size=3][font=Calibri]3.[/font][url=http://perens.com/FreeSoftware/ElectricFence/][font=Calibri][color=#0000ff]Electric Fence[/color][/font][/url][font=宋体]-[/font][font=Calibri]Linux[/font][font=宋体]分发版中由[/font][font=Calibri]Bruce Perens[/font][font=宋体]编写的[/font][font=Calibri]malloc()[/font][font=宋体]调试库。[/font][/size]
[size=3][font=Calibri]4.[/font][url=http://lxr.mozilla.org/mozilla/source/tools/leaky/leaky.html][font=Calibri][color=#0000ff]Leaky[/color][/font][/url][font=宋体]-[/font][font=Calibri]Linux[/font][font=宋体]下检测内存泄漏的程序。[/font][/size]
[size=3][font=Calibri]5.[/font][url=http://www.andreasen.org/LeakTracer/][font=Calibri][color=#0000ff]LeakTracer[/color][/font][/url][font=宋体]-[/font][font=Calibri]Linux[/font][font=宋体]、[/font][font=Calibri]Solaris[/font][font=宋体]和[/font][font=Calibri]HP-UX[/font][font=宋体]下跟踪和分析[/font][font=Calibri]C++[/font][font=宋体]程序中的内存泄漏。[/font][/size]
[size=3][font=Calibri]6.[/font][url=http://www.linkdata.se/sourcecode.html][font=Calibri][color=#0000ff]MEMWATCH[/color][/font][/url][font=宋体]-由[/font][font=Calibri]Johan Lindh[/font][font=宋体]编写,是一个开放源代码[/font][font=Calibri]C[/font][font=宋体]语言内存错误检测工具,主要是通过[/font][font=Calibri]gcc[/font][font=宋体]的[/font][font=Calibri]precessor[/font][font=宋体]来进行。[/font][/size]
[size=3][font=Calibri]7.[/font][url=http://valgrind.org/][font=Calibri][color=#0000ff]Valgrind[/color][/font][/url][font=宋体]-[/font][font=Calibri]Debugging and profiling Linux programs, aiming at programs written in C and C++.[/font][/size]
[size=3][font=Calibri]8.[/font][url=http://kcachegrind.sourceforge.net/cgi-bin/show.cgi/KcacheGrindIndex][font=Calibri][color=#0000ff]KCachegrind[/color][/font][/url][font=宋体]-[/font][font=Calibri]A visualization tool for the profiling data generated by [/font][url=http://valgrind.org/info/tools.html#cachegrind][font=Calibri][color=#0000ff]Cachegrind[/color][/font][/url][font=Calibri] and [/font][url=http://directory.fsf.org/all/calltree.html][font=Calibri][color=#0000ff]Calltree[/color][/font][/url][font=Calibri].[/font][/size]
[size=3][font=Calibri]9.[/font][font=Calibri]IBM Rational [/font][url=http://www-111.ibm.com/ecatalog/Detail.wss?locale=zh_CN&synkey=E108274J06775S83][font=Calibri][color=#0000ff]PurifyPlus[/color][/font][/url][font=宋体]-帮助开发人员查明[/font][font=Calibri]C/C++[/font][font=宋体]、托管[/font][font=Calibri].NET[/font][font=宋体]、[/font][font=Calibri]Java[/font][font=宋体]和[/font][font=Calibri]VB6[/font][font=宋体]代码中的性能和可靠性错误。[/font][font=Calibri]PurifyPlus [/font][font=宋体]将内存错误和泄漏检测、应用程序性能描述、代码覆盖分析等功能组合在一个单一、完整的工具包中。[/font][/size]
[size=3][font=Calibri]10.[/font][font=Calibri]Parasoft [/font][url=http://www.parasoft.com/jsp/products/home.jsp?product=Insure&itemId=63][font=Calibri][color=#0000ff]Insure++[/color][/font][/url][font=宋体]-针对[/font][font=Calibri]C/C++[/font][font=宋体]应用的运行时错误自动检测工具,它能够自动监测[/font][font=Calibri]C/C++[/font][font=宋体]程序,发现其中存在着的内存破坏、内存泄漏、指针错误和[/font][font=Calibri]I/O[/font][font=宋体]等错误。并通过使用一系列独特的技术([/font][font=Calibri]SCI[/font][font=宋体]技术和变异测试等),彻底的检查和测试我们的代码,精确定位错误的准确位置并给出详细的诊断信息。能作为[/font][font=Calibri]Microsoft Visual C++[/font][font=宋体]的一个插件运行。[/font][/size]
[size=3][font=Calibri]11.[/font][font=Calibri]Compuware [/font][url=http://www.compuware.com/products/devpartner/visualc.htm][font=Calibri][color=#0000ff]DevPartner for Visual C++ BoundsChecker Suite[/color][/font][/url][font=宋体]-为[/font][font=Calibri]C++[/font][font=宋体]开发者设计的运行错误检测和调试工具软件。作为[/font][font=Calibri]Microsoft Visual Studio[/font][font=宋体]和[/font][font=Calibri]C++ 6.0[/font][font=宋体]的一个插件运行。[/font][/size]
[size=3][font=Calibri]12.[/font][font=Calibri]Electric Software [/font][url=http://www.glowcode.com/summary.htm][font=Calibri][color=#0000ff]GlowCode[/color][/font][/url][font=宋体]-包括内存泄漏检查,[/font][font=Calibri]code profiler[/font][font=宋体],函数调用跟踪等功能。给[/font][font=Calibri]C++[/font][font=宋体]和[/font][font=Calibri].Net[/font][font=宋体]开发者提供完整的错误诊断,和运行时性能分析工具包。[/font][/size]
[size=3][font=Calibri]13.[/font][font=Calibri]Compuware [/font][url=http://www.compuware.com/products/devpartner/java.htm][font=Calibri][color=#0000ff]DevPartner Java Edition[/color][/font][/url][font=宋体]-包含Java内存检测[/font][font=Calibri],[/font][font=宋体]代码覆盖率测试[/font][font=Calibri],[/font][font=宋体]代码性能测试[/font][font=Calibri],[/font][font=宋体]线程死锁[/font][font=Calibri],[/font][font=宋体]分布式应用等几大功能模块。[/font][/size]
[size=3][font=Calibri]14.[/font][font=Calibri]Quest[/font][url=http://www.quest.com/jprobe/][font=Calibri][color=#0000ff] JProbe[/color][/font][/url][font=宋体]-分析[/font][font=Calibri]Java[/font][font=宋体]的内存泄漏。[/font][/size]
[size=3][font=宋体][size=3][font=Calibri]15.[/font][font=Calibri]ej-technologies [/font][url=http://www.quest.com/jprobe/][font=Calibri][color=#0000ff]JProfiler[/color][/font][/url][font=宋体]-一个全功能的Java[font=宋体]剖析工具,专用于分析[/font]J2SE[font=宋体]和[/font]J2EE[font=宋体]应用程序。它把[/font]CPU[font=宋体]、执行绪和内存的剖析组合在一个强大的应用中。[/font]JProfiler[font=宋体]可提供许多[/font]IDE[font=宋体]整合和应用服务器整合用途。[/font]JProfiler[font=宋体]直觉式的[/font]GUI[font=宋体]让你可以找到效能瓶颈、抓出内存泄漏、并解决执行绪的问题。4.3.2注册码:A-G666#76114F-1olm9mv1i5uuly#0126[/font][/font][/size][/font]
[size=3][font=宋体][font=宋体][font=Calibri]16.[/font][font=Calibri]BEA [url=http://www.bea.com.cn/products/beawebjro81/prodoverview7/index.jsp][color=#0000ff]JRockit[/color][/url][font=宋体]-用来诊断[/font]Java[font=宋体]内存泄漏并指出根本原因,专门针对[/font]Intel[font=宋体]平台并得到优化,能在[/font]Intel[font=宋体]硬件上获得最高的性能。[/font][/font][/font][/font][/size][/size]

[size=3][font=宋体][font=宋体][font=Calibri][font=宋体][b][font=宋体][size=11pt]附录:内存泄漏的发生方式[/size][/font][/b]
[size=11pt][font=Calibri]1.[/font][/size][font=宋体][size=11pt]常发性内存泄漏。发生内存泄漏的代码会被多次执行到,每次被执行的时候都会导致一块内存泄漏。[/size][/font]
[size=11pt][font=Calibri]2.[/font][/size][font=宋体][size=11pt]偶发性内存泄漏。发生内存泄漏的代码只有在某些特定环境或操作过程下才会发生。常发性和偶发性是相对的。对于特定的环境,偶发性的也许就变成了常发性的。所以测试环境和测试方法对检测内存泄漏至关重要。[/size][/font]
[size=11pt][font=Calibri]3.[/font][/size][font=宋体][size=11pt]一次性内存泄漏。发生内存泄漏的代码只会被执行一次,或者由于算法上的缺陷,导致总会有一块且仅有一块内存发生泄漏。[/size][/font]
[size=11pt][font=Calibri]4.[/font][/size][font=宋体][size=11pt]隐式内存泄漏。程序在运行过程中不停的分配内存,但是直到结束的时候才释放内存。严格的说这里并没有发生内存泄漏,因为最终程序释放了所有申请的内存。但是对于一个服务器程序,需要运行几天,几周甚至几个月,不及时释放内存也可能导致最终耗尽系统的所有内存。所以,我们称这类内存泄漏为隐式内存泄漏。[/size][/font]


[font=宋体][size=11pt]原文:[url=http://fafeng.blogbus.com/logs/7525571.html]http://fafeng.blogbus.com/logs/7525571.html[/url][/size][/font]


[font=宋体][size=11pt][b]PS:内存泄漏分析是一项比较复杂的工程,人对内存泄漏的深刻理解才是最重要的,因为工具有时候无法检测出内存泄漏。[/b][/size][/font]
[/font][/font][/font][/font][/size]

[[i] 本帖最后由 xiaoshancom 于 2007-8-17 10:14 编辑 [/i]]

xishuai0328 2007-8-17 10:25

收了

muerte 2007-8-17 11:07

不错,嘿嘿

zhicl 2007-9-12 11:18

哪个工具对WEB程序检查内存泄漏比较好?

shanxi 2007-9-12 12:56

试试Drip

[url]http://outofhanwell.com/ieleak/index.php?title=Main_Page[/url]
[url]http://sourceforge.net/projects/ieleak[/url]

songhailin888 2007-11-9 14:10

回复 5# 的帖子

:victory:

bluemoon1999 2007-11-16 10:35

能否推荐下 一种监测内存工具..
太多了 分不清..

An 2007-11-20 17:14

回复 5# 的帖子

我也正在找關於WEB內存泄漏的工具呢,謝了

qhdguo999 2007-11-22 16:05

謝了

yhfeifei 2008-6-4 12:04

正找这方面的东东:hug:

bruteforce 2008-9-26 14:25

还有IBM Rational Application Developer
对于Java内存侦测,该工具理论上是最强大的
页: [1]
查看完整版本: 内存泄漏检测工具