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

作者&投稿:颛卓 (若有异议请与网页底部的电邮联系)
Windows 下有哪些内存泄露监测工具~

您好,很高兴为您解答。
怎样检测内存泄露 :

检测内存泄漏的关键是要能截获住对分配内存和释放内存的函数的调用。截获住这两个函数,我们就能跟踪每一块内存的生命周期,比如,每当成功的分配一块内存后,就把它的指针加入一个全局的list中;每当释放一块内存,再把它的指针从list中删除。这样,当程序结束的时候,list中剩余的指针就是指向那些没有被释放的内存。这里只是简单的描述了检测内存泄漏的基本原理,详细的算法可以参见Steve Maguire的>。

如果要检测堆内存的泄漏,那么需要截获住malloc/realloc/free和new/delete就可以了(其实new/delete最终也是用malloc/free的,所以只要截获前面一组即可)。对于其他的泄漏,可以采用类似的方法,截获住相应的分配和释放函数。比如,要检测BSTR的泄漏,就需要截获SysAllocString/SysFreeString;要检测HMENU的泄漏,就需要截获CreateMenu/ DestroyMenu。(有的资源的分配函数有多个,释放函数只有一个,比如,SysAllocStringLen也可以用来分配BSTR,这时就需要截获多个分配函数)

在Windows平台下,检测内存泄漏的工具常用的一般有三种,MS C-Runtime Library内建的检测功能;外挂式的检测工具,诸如,Purify,BoundsChecker等;利用Windows NT自带的Performance Monitor。这三种工具各有优缺点,MS C-Runtime Library虽然功能上较之外挂式的工具要弱,但是它是免费的;Performance Monitor虽然无法标示出发生问题的代码,但是它能检测出隐式的内存泄漏的存在,这是其他两类工具无能为力的地方。

Purify
Bounds Checker
Coverity (basically its a code analyzer but, it will catch memory leak in static )
Glow Code
dmalloc
ccmalloc
NJAMD
YAMD
Valgrind
mpatrol

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、Java和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 Java Edition-包含Java内存检测,代码覆盖率测试,代码性能测试,线程死锁,分布式应用等几大功能模块。
19. Quest JProbe-分析Java的内存泄漏。
20. ej-technologies JProfiler-一个全功能的Java剖析工具,专用于分析J2SE和J2EE应用程序。它把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-找到内存泄漏并优


嘉祥县13375166856: Windows 下有哪些内存泄露监测工具 -
杭家双参: 您好,很高兴为您解答. 怎样检测内存泄露 : 检测内存泄漏的关键是要能截获住对分配内存和释放内存的函数的调用.截获住这两个函数,我们就能跟踪每一块内存的生命周期,比如,每当成功的分配一块内存后,就把它的指针加入一个全局...

嘉祥县13375166856: 求windows下好用内存泄露检测工具
杭家双参: Debug Diagnostic Tool http://www.microsoft.com/downloads/details.aspx?FamilyID=28bd5941-c458-46f1-b24d-f60151d875a3&displaylang=en 这个非常好用,直接就可以查任何windows程序的内存泄露.

嘉祥县13375166856: windows 怎么检查内存泄漏 -
杭家双参: Windows 内存诊断程序可以诊断内存泄漏,它会测试计算机随机存取内存(RAM)是否存在错误,包括一组综合性的内存测试.Windows 内存诊断程序容易使用并且速度快,如果运行 Windows 遇到了问题,可以使用此诊断程序查清问题是否由损坏的硬件所导致的. 还有一个很简单的办法来检查一个程序是否有内存泄漏.就是是用Windows的任务管理器(Task Manager).运行程序,然后在任务管理器里面查看 “内存使用”和”虚拟内存大小”两项,当程序请求了它所需要的内存之后,如果虚拟内存还是持续的增长的话,就说明了这个程序有内存泄漏问题. 当然如果内存泄漏的数目非常的小,用这种方法可能要过很长时间才能看的出来.

嘉祥县13375166856: win10内存泄漏,有没有必要重装系统 -
杭家双参: 引起内存泄漏可能是由于一些软件进程,或者是驱动程序.所以没有必要一定重装系统.排查方法:1,打开任务管理器,切换到“详细信息”选项卡2,在进程列表顶部的表头(即“名称”、“PID”、“状态”等这一行字)上点击右键,选择“选择列”3,选中“工作集(内存)”和“工作集增量(内存)”这两项4,随后进程列表中会显示这两个新增的参数5,在列表顶部的表头处点击新添加的这两列的名称,按照对应数值的大小进行降序排列6,看看这两项降序排列后,排名靠前的分别是什么进程.检测到什么进程后,再尝试关闭这些进程,或找到进程对应的程序解决.驱动问题尝试更新所有驱动程序,包括网卡驱动.看内存泄漏问题是否解决.

嘉祥县13375166856: windows7内存泄露 -
杭家双参: ************************************************************************故障原因 system failure 试试如下状态解决方法 第一种 系统问题 一键返原 第二种 软件问题 下掉软件重装 第三种 软件病毒残留文件 清理内存 第四种 软件不兼容 下掉软件 第五种 缓...

嘉祥县13375166856: 如何监测windows服务器的性能 -
杭家双参: Windows服务器中自带的性能监控工具叫做Performance Monitor, 在开始-运行中输入'perfmon',然后回车即可运行.Performance Monitor本身也是一个进程,运行起来也要占用一定的系统资源.所以你看到的资源的使用量应该比实际的要...

嘉祥县13375166856: Win10内存泄露如何解决 -
杭家双参: 首先得确定你的win10版本是32位还是64位,其次就是你的物理内存是多大的,后面才考虑你装的是纯净版Windows10还是修改版的,因为这个关系到你开了多少服务多少进程,从而知道你消耗多少内存才是正常的,如果前面的数据一切正常,内存还是偏高那就说明你的系统不稳定必须得重新安装

嘉祥县13375166856: windows最新版本还存在内存泄漏的问题吗? -
杭家双参: 一个程序(进程)如果终止了,其所相关的资源(内存,句柄等)都会被系统回收,这是现代操作系统的一个特定,因此在这点上,Windows不会有泄漏的问题.向上面的这种,虽然也算是内存泄漏,但是在程序运行期间,短期存在的;如果程序长期运行,或者在一定时间内反复分配但不释放,或者是驱动程序,甚至是操作系统内存分配机制,或者是如Windows程序的进程间的共享内存,等如果存在缺陷后漏掉,那么就是危害严重的内存泄漏了.

嘉祥县13375166856: 用什么软件可以防止内存泄漏?
杭家双参: RAM Booster Pro V5.0.1内存优化工具,它防止内存泄漏,提高计算机速度,使windows运行更快更稳定 下载地址: http://1.gobee.cn/FTP/2007-05/15 ... %20Pro%20V5.0.1.rar(迅雷下)

嘉祥县13375166856: 寻找windows 2008 下的一种监控工具,可以实现对某个文件夹或者目录进行监控. -
杭家双参: Windows 性能监视器 下面列出了监视性能和可靠性的主要方案: 方案 1:使用性能监视器监视特定系统活动方案 2:通过性能监视器创建数据...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网