`
robinjoe
  • 浏览: 45802 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

内存泄露检测工具比较

阅读更多

1.     ccmallocLinuxSolaris下对CC++程序的简单的使用内存泄漏和malloc调试库。

2.     DmallocDebug Malloc Library.

3.     Electric FenceLinux分发版中由Bruce Perens编写的malloc()调试库。

4.     LeakyLinux下检测内存泄漏的程序。

5.     LeakTracerLinuxSolarisHP-UX下跟踪和分析C++程序中的内存泄漏。

6.     MEMWATCH-由Johan Lindh编写,是一个开放源代码C语言内存错误检测工具,主要是通过gccprecessor来进行。

7.     ValgrindDebugging and profiling Linux programs, aiming at programs written in C and C++.

8.     KCachegrindA visualization tool for the profiling data generated by Cachegrind and Calltree.

9.     Leak Monitor-一个Firefox扩展,能找出跟Firefox相关的泄漏类型。

10. IE Leak Detector (Drip/IE Sieve)DripIE Sieve leak detectors帮助网页开发员提升动态网页性能通过报告可避免的因为IE局限的内存泄漏。

11. Windows Leaks Detector-探测任何Win32应用程序中的任何资源泄漏(内存,句柄等),基于Win API调用钩子。

12. SAP Memory Analyzer-是一款开源的JAVA内存分析软件,可用于辅助查找JAVA程序的内存泄漏,能容易找到大块内存并验证谁在一直占用它,它是基于Eclipse RCP(Rich Client Platform),可以下载RCP的独立版本或者Eclipse的插件。

13. DTrace-即动态跟踪Dynamic Tracing,是一款开源软件,能在Unix类似平台运行,用户能够动态检测操作系统内核和用户进程,以更精确地掌握系统的资源使用状况,提高系统性能,减少支持成本,并进行有效的调节。

14. IBM Rational PurifyPlus-帮助开发人员查明C/C++、托管.NETJavaVB6代码中的性能和可靠性错误。PurifyPlus 将内存错误和泄漏检测、应用程序性能描述、代码覆盖分析等功能组合在一个单一、完整的工具包中。

15. Parasoft Insure++-针对C/C++应用的运行时错误自动检测工具,它能够自动监测C/C++程序,发现其中存在着的内存破坏、内存泄漏、指针错误和I/O等错误。并通过使用一系列独特的技术(SCI技术和变异测试等),彻底的检查和测试我们的代码,精确定位错误的准确位置并给出详细的诊断信息。能作为Microsoft Visual C++的一个插件运行。

16. Compuware DevPartner for Visual C++ BoundsChecker Suite-为C++开发者设计的运行错误检测和调试工具软件。作为Microsoft Visual StudioC++ 6.0的一个插件运行。

17. Electric Software GlowCode-包括内存泄漏检查,code profiler,函数调用跟踪等功能。给C++.Net开发者提供完整的错误诊断,和运行时性能分析工具包。

18. Compuware DevPartner Java Edition-包含Java内存检测,代码覆盖率测试,代码性能测试,线程死锁,分布式应用等几大功能模块。

19. Quest JProbe-分析Java的内存泄漏。

20. ej-technologies JProfiler-一个全功能的Java剖析工具,专用于分析J2SEJ2EE应用程序。它把CPU、执行绪和内存的剖析组合在一个强大的应用中。JProfiler可提供许多IDE整合和应用服务器整合用途。JProfiler直觉式的GUI让你可以找到效能瓶颈、抓出内存泄漏、并解决执行绪的问题。4.3.2注册码:A-G666#76114F-1olm9mv1i5uuly#0126

21. BEA JRockit-用来诊断Java内存泄漏并指出根本原因,专门针对Intel平台并得到优化,能在Intel硬件上获得最高的性能。

22. SciTech Software AB .NET Memory Profiler找到内存泄漏并优化内存使用针对C#VB.Net,或其它.Net程序。

23. YourKit .NET & Java Profiler-业界领先的Java.NET程序性能分析工具。

24. AutomatedQA AQTimeAutomatedQA的获奖产品performance profilingmemory debugging工具集的下一代替换产品,支持Microsoft, Borland, Intel, Compaq GNU编译器。可以为.NETWindows程序生成全面细致的报告,从而帮助您轻松隔离并排除代码中含有的性能问题和内存/资源泄露问题。支持.Net 1.0,1.1,2.0,3.0Windows 32/64位应用程序。

25. JavaScript Memory Leak Detector-微软全球产品开发欧洲团队(Global Product Development- Europe team, GPDE) 发布的一款调试工具,用来探测JavaScript代码中的内存泄漏,运行为IE系列的一个插件。

 

 

附录:内存泄漏的发生方式

1.     常发性内存泄漏。发生内存泄漏的代码会被多次执行到,每次被执行的时候都会导致一块内存泄漏。

2.     偶发性内存泄漏。发生内存泄漏的代码只有在某些特定环境或操作过程下才会发生。常发性和偶发性是相对的。对于特定的环境,偶发性的也许就变成了常发性的。所以测试环境和测试方法对检测内存泄漏至关重要。

3.     一次性内存泄漏。发生内存泄漏的代码只会被执行一次,或者由于算法上的缺陷,导致总会有一块且仅有一块内存发生泄漏。

4.     隐 式内存泄漏。程序在运行过程中不停的分配内存,但是直到结束的时候才释放内存。严格的说这里并没有发生内存泄漏,因为最终程序释放了所有申请的内存。但是 对于一个服务器程序,需要运行几天,几周甚至几个月,不及时释放内存也可能导致最终耗尽系统的所有内存。所以,我们称这类内存泄漏为隐式内存泄漏。

 

什么是系统资源?

当应用程序在Windows中运行时,Windows必须实时"跟踪"该应用程序的运行,并保留与之相关的许多信息,如按钮、光标、菜单的位置和位图、窗口的状况等,这些信息由Windows保留在一种叫堆的内存块中,堆的英文为Heap。简单地说,堆是采用特殊机制管理的内存块。由Windows的一个系统内核User.exe管理的堆叫做User资源堆(User Resource Heap),由另一个系统内核Gdi.exe管理的堆叫做GDI资源堆(Graphical Device Interface Resource Heap,简称GDI Resource Heap),User资源堆和GDI资源堆合称为系统资源堆(System Resource Heap),习惯上就把它们叫做系统资源(System Resource)。

  微软将Windows的系统资源(堆)分为五个堆,其中User资源堆为三个,而GDI资源堆为两个。

  三个User资源堆分别是:16位的用户堆(User Heap64KB);32位的窗口堆(Windows Heap2MB);32位的用户菜单堆(User Menu Heap2MB)。

  两个GDI资源堆分别是:16位的GDI堆(GDI Heap64KB);32位的GDI堆(GDI2MB)。

  从这里的系统资源分类和大小我们应该明白,不管CPUP4还是486,内存是8M还是1G,所有Windows的用户都拥有同样大小的系统资源(堆),用户不能自已增加或减少系统资源的大小,这是由操作系统决定的,与硬件档次没有任何关系。

  WindowsUser资源堆和GDI资源堆的可用(Free)空间称为可用 User资源和可用GDI资源,Windows中以百分数表示它们,用户可以选择 "开始/附件/系统工具/系统信息",来实时查看它们的大小。

分享到:
评论

相关推荐

    windows下c++内存泄露检测工具使用方

    ### Windows 下 C++ 内存泄露检测工具使用详解 在 Windows 平台下进行 C++ 开发时,内存管理是一项非常重要的任务。由于 C++ 语言本身的特性,开发者需要手动管理内存分配与释放,这就很容易导致内存泄露的问题。...

    jni层内存泄漏检测工具

    JNI层内存泄漏检测工具是针对Android应用开发中的一个重要问题——JNI内存泄漏的解决方案。JNI,全称为Java Native Interface,允许Java代码与其他编程语言(如C++)交互,从而利用其性能优势。然而,由于Java和C/...

    Lua内存泄露检测工具LuaMonitor下载.rar

    本文将详细介绍Lua内存泄露检测工具LuaMonitor,以及如何利用它来提升项目性能。 LuaMonitor是一款专门针对Lua环境设计的内存泄露检测工具。它提供了一个直观的视图分析界面,帮助开发者了解程序在运行过程中内存的...

    arm环境内存泄漏检测工具valgrind

    "arm环境内存泄漏检测工具valgrind"就是这样一个针对ARM平台的专业工具,它能帮助我们识别并解决内存泄漏问题。 Valgrind是一个开源的动态分析工具集,主要用于调试、性能评估和内存错误检测。在ARM环境下,...

    内存泄露检测工具

    内存泄露检测工具 内存泄露是指计算机程序在运行过程中,无法释放已经分配的内存空间,从而导致内存泄露的现象。内存泄露检测工具是用于检测和解决内存泄露问题的软件工具。以下是常用的内存泄露检测工具: 1. ...

    Windows内存泄漏排查工具

    为了解决这个问题,开发者通常会使用专门的内存泄漏检测工具。本文将详细介绍两个用于Windows平台的内存泄漏排查工具:LeakDiag和LDGrapher。 **LeakDiag** LeakDiag是由微软开发的一款轻量级内存泄漏检测工具,...

    vc++内存泄漏检测工具

    标题中提到的"vc++内存泄漏检测工具",通常指的是用于检测Visual C++编译的程序中内存泄漏的工具。这类工具可以帮助开发者定位和修复内存管理错误,确保程序的健壮性和稳定性。在C++环境中,内存泄漏检测通常通过...

    JS内存泄漏检测工具

    JS内存泄漏检测工具:IEJSLeaksDetector

    vs内存泄漏检测工具

    Visual Leak Detector(VLDB)是一款专为Visual Studio设计的第三方内存泄漏检测工具,它能帮助开发者在VS项目中定位和解决内存泄漏问题。 **1. 内存泄漏的理解** 内存泄漏是指程序在申请内存后,无法释放已申请的...

    C++内存泄漏检测工具

    "Virtual Leak Detector"是一款针对C++的内存泄漏检测工具,它被设计用来帮助开发者定位并修复程序中的内存泄漏问题。这款工具通过对程序运行时的内存分配和释放进行跟踪,能够准确报告那些未被释放的内存块。通过...

    内存泄露检测工具boundschecker11.rar

    BoundsChecker是一款由Compuware公司开发的著名内存泄露检测工具,专用于帮助程序员发现和修复这类问题。这款工具以其强大的功能和易用性在IT行业内得到了广泛的认可。 BoundsChecker 11版本可能是该工具的一个特定...

    两个超棒的内存泄露检测工具

    本文将详细介绍两款备受推崇的内存泄露检测工具,帮助开发者有效地找出并解决这类问题。 第一款工具是Valgrind。Valgrind是一款开源的动态分析工具,广泛用于内存泄漏检测、性能分析以及错误检测。它通过在运行时为...

    推荐4款linux下的c语言内存泄漏检测工具.zip

    推荐4款linux下的检测c语言编写的程序的内存泄漏工具 C语言和其他语言相比最大的特色就是能够操作内存 但是最常犯的错误也是内存泄漏(管杀不管埋) 所以我们需要用一些工具来帮助我们检测是否...奉上几款内存检测工具

    C++内存泄露检测器

    在"leakfinder.tar"这个文件中,很可能包含了一个名为"LeakFinder"的内存泄漏检测工具,该工具可能是上述方法的一个实现。使用这样的工具可以帮助开发者快速定位并修复内存泄漏问题,提高程序的稳定性和效率。使用前...

    内存泄露检测工具--VisualLeakDetector

    Visual Leak Detector(VLD)是一款专门为Microsoft Visual C++编译器设计的内存泄露检测工具。它可以在你的应用程序运行时自动检测内存泄露,并提供详细的报告,帮助开发者找出问题所在。VLD通过链接到你的可执行...

    Web 的内存泄漏检测工具

    内存泄漏 Web 的内存泄漏检测工具 更多信息请查看 www.iubang.com

    linux下检查内存泄漏的工具+例子

    本资料包提供了一种常用且强大的内存泄漏检测工具——Valgrind,以及其安装教程、使用示例和详细说明文档。 Valgrind是一款开源的动态分析工具,主要用于检测C和C++程序中的内存错误,包括内存泄漏、未初始化的内存...

    linux内存泄露检测工具

    "Linux 内存泄露检测工具" Linux 内存泄露检测是指在 Linux 环境下检测程序内存泄露的过程。内存泄露是指程序在申请内存后没有释放,导致内存的浪费和系统性能下降。检测内存泄露可以使用 Valgrind 工具,它可以...

    vs2010内存泄露检查工具

    本文将详细介绍这款开源免费的内存泄漏检测工具,并提供使用指南。 标题中的“vs2010内存泄露检查工具”指的是Visual Leak Detector(VLD),这是一个为Visual C++编译器设计的插件,它可以在运行时检测并报告C++...

Global site tag (gtag.js) - Google Analytics