1.Windows 下有哪些内存泄露监测工具

windows performance analyzer_

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 Cachegrindand Calltree.

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

10. IE Leak Detector (Drip/IE Sieve)-Drip和IE 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++、托管.NET、Ja和VB6代码中的性能和可靠性错误。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 Studio和C++ 6.0的一个插件运行。

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

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

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

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

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

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

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

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

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

Windows 下有哪些内存泄露监测工具

很多人认为Windows性能分析器是用来检测操作系统性能的,其实它的作用不至于此。对于任何一个基于Windows操作系统的应用程序来说,只要程序中嵌入了基于ETW的,Windows性能分析器就能对其进行性能检测。换句话说,您可以用它来检测和调试自己程序的性能。

还有非常重要的一点,它是免费的!!您可以点击这里最新版的Windows性能分析器。另外,Windows SDK中也包含该工具。

一、Windows性能分析器简介

Windows性能分析器(简称WPA)是一套功能强大的程序,它能够察看系统和应用程序的行为和使用情况。WPA可以用来检查一些性能问题,并获得的使用信息。开发人员可以使用WPA更加方便地检测并解决性能问题。

WPA使用Windows追踪(ETW)来收集性能和系统信息。ETW是一种开销很小的性能测试工具,它建立在操作系统之上,任何运行在Windows系统上的应用程序也可以使用它。Windows Vista和Windows Server 2008提供了几百个ETW,通过在运行时抓取这些,可以获得很多信息。微软支持ETW,并提供了很多相关文档。我们鼓励开发人员和架构师在新开发的程序中使用ETW,这样WPA就能在这些程序上发挥最大的作用。有关ETW的信息请查看本系列第三部分的”Windows追踪”部分。

WPA提供3种形式的数据:

图表

图表的x轴表示时间,y轴表示捕获的信息。

追踪活动生成的多组数据将生成多个图表。一条追踪活动的多个图表上的时间轴保持一致。

图表中的选定部分可以被放大,这样可以查看更详细的追踪信息。比如,如果一个CPU样本图表显示了一小段时间内的所有活动,用户可以放大其中一块来查看一些异常行为。放大以后用户可以确定是哪个线程或者进程导致了这些异常行为。

因为一个集合内的所有图表都是相连的,所以用户可以放大所有图表内选定的一个时间段,这样就能够查看这个时间段内所有的相关活动。

为了获得系统活动的宏观信息,图表可以被覆盖或者合并。任何时候用户想返回原始的图表信息,只需要选择“zooming out”即可。

关于图表的更多信息,请查看Graphs(英文)。

摘要表格

摘要表格的行表示时间,列表示捕获的信息。

用户可以在表格内显示,隐藏或者调整数据列的位置。

摘要表格还提供排序和聚合功能。

摘要表格可以利用符号信息用来显示调用堆栈。

关于摘要表格的更多信息,请查看Summary Tables(英文)。

文本和自定义格式文件

自定义文件格式可以用作特定环境下的性能评测。

从WPA捕获的信息可以放在各种文件格式中作为输出,比如ASCII或者CSV文件。

使用Actions语法可以将调用堆栈数据放入输出文件。

关于生成自定义文件输出的更多信息,请查看Actions(英文)。

其他WPA特性:

查看调用堆栈-通过WPA,内核可以在生成时捕获调用堆栈。生成的和相关堆栈信息可以保存在追踪文件中。当堆栈和符号信息结合时,你就可以查看堆栈信息了。

WPA可以用作脚本操作,也能通过命令行操作。通过脚本,WPA可以自动捕获实时性能信息。

WPA追踪功能可以在任何时候开启和关闭,不需要系统或者进程重启。这个功能在实时用户环境收集信息的情况下非常有用。

当追踪信息被捕获时,这个数据可以由本机处理,也可以复制到另外一台机器。比如Windows Server 2008上生成的追踪数据可以在Windows Vista机器上分析。

参考资料:

://.cnblogs/stbchina/archive/2010/07/01/windows-performance-analyzer-overview-1.html

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 Cachegrindand Calltree.

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

10. IE Leak Detector (Drip/IE Sieve)-Drip和IE 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++、托管.NET、Ja和VB6代码中的性能和可靠性错误。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 Studio和C++ 6.0的一个插件运行。

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

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

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

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

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

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

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

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

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