当前位置:文档之家› 内存泄露检测工具

内存泄露检测工具

内存泄露检测工具
内存泄露检测工具

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. MEMWA TCH-由Johan Lindh编写,是一个开放源代码C语言内存错误检测工具,主要是通过gcc的precessor来进行。

7. V algrind-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相关的泄漏类型。

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

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

12. SAP Memory Analyzer-是一款开源的JA V A内存分析软件,可用于辅助查找JA V A程序的内存泄漏,能容易找到大块内存并验证谁在一直占用它,它是基于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 V isual C++的一个插件运行。

16. Compuware DevPartner for V isual C++ BoundsChecker Suite-为C++开发者设计的运行错误检测和调试工具软件。作为Microsoft V isual 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-找到内存泄漏并优化内存使用针对C#,https://www.doczj.com/doc/6e21772.html,,或其它.Net程序。

23. Y ourKit .NET & Java Profiler-业界领先的Java和.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. JavaScript Memory Leak Detector-微软全球产品开发欧洲团队(Global Product Development- Europe team, GPDE) 发布的一款调试工具,用来探测JavaScript代码中的内存泄漏,运行为IE系列的一个插件。

本文来自CSDN博客,转载请标明出处:https://www.doczj.com/doc/6e21772.html,/adcxf/archive/2008/08/24/2822441.aspx

内存检测工具的使用教程

u启动WINDIAG内存检测工具的使用教程 按下回车将后,电脑会自动进行内存的检测,直到您按下“X”键或者是关闭电脑 windiag内存检测工具将会自动运行,在这里它会无限进行电脑内存检测,我们只要关注工具进行test5次以上检测即可,检测结果会显示在“results”和“pass”以及“cache”这三个位置在电脑检测内存的过程中,我们也可以看到检测是否成功和检测的进度; 上述过程就是如何运用U盘启动盘的内存检测WINDIAG工具对电脑内存进行检测。用户需要注意的是,WINDIAG工具会无限次循环检测内存,我们只需检测次数达到5次以上,按下“X”键或直接关闭电脑。******************************************************************************* u启动Memtest4.20内存检测工具使用教程 当我们按下回车键时系统便会自动进行内存检测,检测的时间大约会在2小时左右,请耐心等待。

现在u启动小编就内存检测的过程中的相关数值向大家详细说明一下: 上方的Pass:表示检测过程中的整体进度; Test:表示检测当前进度; 下方的WallTime:检测时长,大约会在2小时左右; Pass:进行内存检测的次数,经过这一次检测后,下次检测时这里的数值将会是“1”,并且每一次的检测都会累计上去。 Error ECC Errs:检测错误的次数和地点将会在此显示出来。 ******************************************************************************* u启动u盘启动物理内存检测memtest使用教程 物理内存检测memtest是一款可以对电脑内存进行精确检测的工具,在使用时需要关闭当前电脑中所有正在运行的程序,在进行测试时,建议至少运行20分钟,您运行的时间越长,结果越准确。如果拥有多个核心/处理器,可以运行多个副本MemTest分别测试它们之间的内存大小。下面就来看看如何使用这款工具吧。 首先,制作一个u启动u盘启动盘,我们可以从u启动官网下载u启动u盘启动盘制作工具制作一个启动u盘,具体可以参考“下载并安装u启动v6.1制作u盘启动盘教程”。 1、把制作好的u启动u盘启动盘插在电脑usb接口上,然后重启电脑,在出现开机画面时 用一键u盘启动快捷键的方法进入到启动项选择窗口,选择u盘启动,进入到u启动v6.1主菜单界面,选择【02】运行u启动win8pe防蓝屏(新机器)选项,按回车键确认选择,如下图所示:

Windows 内存诊断程序

Windows 内存诊断程序 Windows 内存诊断程序测试计算机随机存取内存(RAM)是否存在错误。此诊断程序包括一组综合性的内存测试。如果运行Windows 遇到了问题,可以使用此诊断程序查清问题是否由损坏的硬件(如RAM 或母板的内存系统)所导致的。Windows 内存诊断程序容易使用并且速度快。在多数配置下,您可以在不到三十分钟的时间内就可以下载诊断程序,阅读说明,运行测试并完成第一次测试通过。 要运行Windows 内存诊断程序,您必须在磁盘驱动器中用安装Windows 内存诊断程序的磁盘或CD-ROM 重新启动计算机。重新启动后,Windows 内存诊断程序会加载,并显示其界面。加载后,将使用默认的标准测试套件运行第一次测试通过。除非Windows 内存诊断程序被暂停或退出,此程序会继续运行,直到完成。第一次测试通过一旦完成,Windows 内存诊断程序会使用与前一次相同的设置运行第二次测试通过。在您退出程序前,Windows 内存诊断程序会继续运行测试通过。 Windows 内存诊断程序用户指南 下载Windows 内存诊断程序 Windows 内存诊断程序用户指南 此用户指南提供必需的信息和循序渐进的说明,以便您运行Windows 内存诊断程序。 在使用Windows 内存诊断程序之前,请务必阅读此指南中的信息和说明。 快速入门信息 运行Windows 内存诊断程序 ?理解Windows 内存诊断程序的结果 使用Windows 内存诊断程序进行诊断 ?手动辨别发生故障的内存组件 附录 系统要求 Windows 内存诊断程序用户界面 ?选项 ?菜单选项 选择测试套件

内存泄漏检查

内存泄漏检测方法 ?对于不同的程序可以使用不同的方法来进行内存泄漏的检查,还可以使用一些专门的工具来进行内存问题的检查,例如MemProof、AQTime、Purify、BundsChecker 等。 ?也可以使用简单的办法:利用Windows自带的Perfmon来监控程序进程的handle count、Virtual Bytes和Working Set 3个计数器。 Handle Count记录了进程当前打开的句柄个数,监视这个计数器有助于发现程序是否存在句柄类型的内存泄漏; Virtual Bytes记录了程序进程在虚拟地址空间上使用的虚拟内存的大小,Virtual Bytes一般总大于程序的Working Set,监视Virtual Bytes可以帮助发现一些系统底层的问题; Working Set记录了操作系统为程序进程分配的内存总量,如果这个值不断地持续增加,而Virtual Bytes却跳跃式地增加,则很可能存在内存泄漏问题。 堆栈内存泄漏 ?堆栈空间不足会导致在受托管的情况下引发StackOverflowException类型的异常,线程泄漏是堆栈内存泄漏的其中一种。线程发生泄漏,从而使线程的整个堆栈发生泄漏。 ?如果应用程序为了执行后台工作而创建了大量的工作线程,但却没有正常终止这些线程,则可能会引起线程泄漏。 一个堆栈内存泄漏的例子: private void button1_Click(object sender, EventArgs e) { // 循环启动多个线程 for (int i = 0; i < 1500; i++) { Thread t = new Thread(new ThreadStart(ThreadProc)); t.Start(); } } static void ThreadProc() { Console.WriteLine("启动Thread #{0}

专业内存测试软件

专业内存测试软件 R.S.T 现在的启动光盘上这个软件非常多,在电脑设置光盘启动就可以用这个软件检测内存了!(检测通过的项目显示绿色;正在测试的项目显示黄色;通不过的项目显示红色。任意一个红色,内存就有问题了!)简介: 此工厂内部专业内存维修软件可以修内存引起的蓝屏,非法操作,死机,不兼容等故障,可以很正确的查出内存芯片损坏的位置,查出后只要换掉此坏芯片就可以修复。如果是点不亮的内存,在主板上插一根好的内存,再插一根坏的,这样如果能带动的话也能用这个软件来检测,使用方式现在配合说明很简单,能正确的定位芯片位置 01234567 89ABCDEF 01234567 89ABCDEF 01234567 89ABCDEF 01234567 89ABCDEF 如上所示:闪动的一排测试数字代表内存8颗粒的测试情况。 从左至右,0-7代表第一区域,8-F代表第二区域;0-7代表第三区域,8-F代表第四区域;……依次代表内存条的8颗颗粒。 ⒈DDR内存8位与16位的单面测法: ⑴. 0-7(1 )区域如果出现乱码,代表这根DDR内存条的第1颗粒已经损坏 ⑵. 8-F(2 )区域如果出现乱码,代表这根DDR内存条的第2颗粒已经损坏 ⑶. 0-7(3 )区域如果出现乱码,代表这根DDR内存条的第3颗粒已经损坏 ⑷. 8-F(4 )区域如果出现乱码,代表这根DDR内存条的第4颗粒已经损坏 ⑸. 0-7(5 )区域如果出现乱码,代表这根DDR内存条的第5颗粒已经损坏 ⑹. 8-F(6 )区域如果出现乱码,代表这根DDR内存条的第6颗粒已经损坏 ⑺. 0-7(7 )区域如果出现乱码,代表这根DDR内存条的第7颗粒已经损坏 ⑻. 8-F(8 )区域如果出现乱码,代表这根DDR内存条的第8颗粒已经损坏 注意:DDR内存的颗粒排列循序是1-2-3-4-5-6-7-8 ⒉如果你是128M的双面DDR内存,如以上显示界面图: 1-16M ----------------------------------------------------------------------------------------------------- 16-32M----------------------------------------------------------------------------------------------------- 32-48M --------------------------------------------------------------------------------------------------- 48-64M---------------------------------------------------------------------------------------------------- 从1M到64M的4根虚线上出现乱码,说明这根内存的第一面颗粒有问题(判断哪个颗粒照上说明) 64-80M ---------------------------------------------------------------------------------------------------- 80-96M --------------------------------------------------------------------------------------------------

内存泄露测试方法

如何测试客户端软件的内存泄露客户端软件包括C/S系统的客户端和B/S系统中的客户端控件,当用户使用客户端软件时,如果发现我们的软件会吃内存,那是很丢面子的事,有哪些好的测试方法呢?希望大家能踊跃提出自己的看法。 会员huior的精彩回答:如何发现客户端软件中的内存泄露?我的看法是:检测内存泄漏的问题应该尽早进行,它绝不应该是系统测试时的主要目标。也就是说,检查是否存在内存泄漏,应该从编码时就要考虑,单元测试和集成测试时要重点检查。如果前期没有考虑,等到了系统测试才想起检查或者才发现泄漏,为时已晚,此时再去定位泄漏的位置,太难太难了,它可能会让你的交付日期delay不确定的时间。 最近看了一些自动错误预防(AEP)的理论,我深受启发。作为测试人员的我们,从“发现错误”转变到“帮助开发人员预防错误”,这将是一个巨大的转变。所以说,下面我的答案中的第一点,我先说如何预防内存泄漏的问题,然后再讲如何发现。如何在开发过程中有效预防内存泄漏? 第一步:遵循“好”的编程规则“好”的编程规则是各位前辈经验和教训的集合,好的编程规则堪称开发者的“圣经”。遵循统一的编程规则,可以让开发新手少走好多弯路,可以让项目整体的质量维持一个起码的“质量底线”。有关内存泄漏方面的规则主要是“内存管理”方面的,举几个简单的,如下x用malloc或new申请内存之后,立即检查指针值是否为NULL(防止使用指针值为NULL的内存),×动态内存的申请与释放是否配对(防止内存泄漏),x malloc 语句是否正确无误?例如字节数是否正确?类型转换是否正确×是否出现野指针,例如用free或delete释放了内存之后,忘记将指针设置为NULL。 第二步:积极主动检测“内存泄漏”,严格遵循好的编程规则,可以让程序员在代码中尽量少的引入bug,但一旦不小心引入了,怎么办?这就要求我们在单元测试和集成测试中严格把关。在这个阶段,单靠程序员或者测试员通过“代码走查”的方式检查内存泄漏,客户的实践和我的经验告诉我,这是不切实际的,无论效率还是时间。如果能够借助于一些专业的工具的话,情况可能就不一样了。 如果你的程序是用Visual C++ 6.0开发,那么Numega的BoundsChecker将是你检测“内存泄漏”最好的选择,如果是Visual C++.NET,可以试一下Compuware的DevPartner。如果你的程序基于Unix或者Linux平台,使用C或者C++,可以考虑一下开源的工具valgrind,我的朋友跟我说,它在一定程度上比Rational的Purify更出色。上面的工具都要求程序能够动态运行起来,而且测试用例需要你自己准备。 如果你正处于单元测试或集成测试阶段,程序代码量已经足够大,而且还不能够动态运行,要尽早检测代码中的“内存泄漏”问题,该怎么办?此时你可以试用一下目前最新的静态分析技术:×它不要求代码能够动态运行,×也不需要你来编写测试用例,×只需要代码能够正常编译,就可以发现代码只有在执行过程中才出现的错误,当然也包括内存泄漏。 这方面的工具有Klocwork的K7,Coverity的SQS,以及C++test中的BugDetective,其中最“物美价廉”的就是c++test的BugDetective。 如何发现客户端软件的“内存泄漏”?如果开发过程中已经按照我上面提到的去做,相信发布后的程序存在“内存泄漏”的可能性几乎为零。如果开发过程已经到了后期,系统测试已经开始做了,还要发现内存泄漏,这个时候我希望你能够拿到源代码。如果有源代码,你还可以考虑第二步,借助专业的工具协助,虽然可能效果不一定特别理想,但总比下面我提到的方法更好一些。 当然作为测试人员,通常会碰到“需要在系统测试阶段检测是否有内存泄漏,而且没有

内存测试三步法

DDR内存子系统常见硬件错误及Uboot中检测流程 在U-Boot中,Denx(U-Boot的开发商)针对常见的DDR 内存故障进行了严格的检测处理,下图描述了该检测处理过程的三个步骤:检测数据线、地址线和DDR物理存储部件,主要涉及这三个步骤的处理过程和方法,对于DDR子系统,是很容易出故障并且是很难debug检测出来的,而Denx所针对DDR 内存故障设计的检测方法是非常严谨,值得学习研究的。

下面主要是相关的检测处理思路及问题:

1、为什么先检测数据线? 因为如果数据线是断开的,那么一切无从谈起!接下来是检测地址线,只有数据线和地址线都通过,检测内存的存储单元才有意义,这样的流程也利于分割定位问题。上面testing sequence 框图将整个检测过程分成三大步,用三个虚线方框表示。 2、数据线的连接错误 数据线的连接可能存在两种错误,一种是被断开,另一种布线或生产造成互相短路。 3、如何检测数据线的连接错误 Denx 设计的数据线检测算法还是很Tricky和精秒的,整个处理流程如下例子:如果是两根数据线,只需要写入并读出一个pattern=0b01(0b开头表示二进制数)就能判断它们是否短路或断开。很明显,大部分的嵌入式平台不止两根数据线,我们以64位地址线为例,pattern = 0b101010101010101010.... 能检测出奇偶位之间的数据错误。如果这个错误被排除,每两根数据线组成一组(这是理解下一个pattern的关键),再用相同的办法,检测每相邻两组之间是否有短路,就得到第二个

pattern,就是0b110011001100...... 依次类推,以4根数据线为一组,8根线为一组,相继得到共6个pattern,分别是0xaaaaaaaaaaaaaaaa,0xcccccccccccccccc, 0xf0f0f0f0f0f0f0f0,0xff00ff00ff00ff00, 0xffff0000ffff0000,0xffffffff00000000。只要相继写入并读出这6个pattern就能验证是否存在数据线交叉短路错误。 4、如何检测数据线与板上其它信号线交叉短路或断路 取以上6个pattern的反码,总共12个pattern就能检测到每一位都可以写入和读出0和1。 5、什么是floating buses错误 floating buses会“欺骗”测试软件,如果测试软件写入并很快读出一个值的时候,写操作会给数据线上的电容充电,总线会短暂的保持它的状态。当测试软件读操作时,总线会返回刚写入的值,即使实际上该数据线是断路的。 6、如何检测数据线的floating buses错误

三种优秀的内存测试软件用法

(二)RAM Stress Test(RST)内存测试软件 Data Bus 数据总线 工厂检测内存条质量的软件Ram Stress Test,只要有一丁点问题,都能检查出来,推荐大家使用,各位一定都碰到过,提示内存不能为READ,或者WRITTEN的情况,很多时候都是软件问题,要解决他首先检查内存条的质量,然后再从软件去找问题。这个软件是最专业的,比那个MEMREST还好,只需要检查一边,好就是好,坏的就是坏的。这个软件确实很好,内存坏的话会显示红色,并且报警。但是只能检测一代内存,二代内存就需要微软的检测工具了。Ram Stress Test是美国Ultra-X公司旗下的一个专业记忆体测试程式,是专门给系统生产厂商出机前用的测试程式,他其实是从其他的产品独 过他的测试几乎就能应付大部分的记忆体问题,所以是非常好用的一个测试工具!! 使用非常简易,只要设定为软碟开机就行了,他是一个独立开发的系统,没有依附任何作业系统,相容于x86系列,只要BIOS认的到的容量他都能测!!发现ATS 选项错误,在BIOS 中,记忆体选项设成Auto时,记忆体的CL=2,改成Manual,自设CL=时,上述选项才能通过。 程序执行后,第一选项是测试物理内存中基本内存地址(<640K),第二项是扩展内存地址,第三项是测试你CPU的L2 cache。 ☆可以测试SD及DDR内存。 ☆ 依次代表内存条的8颗颗粒。

从左到右横着数:0-7代表第1颗粒区域、8-F代表第2颗粒、0-7代表第3颗粒、8-F代表第4颗粒、0-7代表第5颗粒代、8-F代表第6颗粒、0-7代表 第7颗粒、8-F代表第8颗粒 ☆点不亮内存的测试方法——很多内存短路或者颗粒损坏后都不能点亮,点不亮的可以用一根好的内存去带动它(可解决部分点不亮问题) 。必须SD的带SD的,DDR的带DDR的。本软件会自动跳过好的去检测坏的那根。 ☆发现ATS 选项错误,在BIOS中,记忆体选项设成Auto时,记忆体的CL=2,改成Manual,自设CL=时,上述选项才能通过。 ☆程序执行后,第一选项是测试物理内存中基本内存地址(<640K),第二项是扩展内存地址,第三项是测试CPU的L2 cache。 RAM测试软件说明书 )UX版 闪动的一排测试数字代表内存8颗粒的测试情况。 从左至右,0-7代表第一区域,8-F代表第二区域;0-7代表第三区域,8-F代表第四区域;……依次代表内存条的8颗颗粒。 ⒈DDR8位与16位的单面测法: ⑴. 0-7(1 )区域如果出现乱码,代表这根DDR内存条的第1颗粒已经损坏 ⑵. 8-F(2 )区域如果出现乱码,代表这根DDR内存条的第2颗粒已经损坏 ⑶. 0-7(3 )区域如果出现乱码,代表这根DDR内存条的第3颗粒已经损坏 ⑷. 8-F(4 )区域如果出现乱码,代表这根DDR内存条的第4颗粒已经损坏 ⑸. 0-7(5 )区域如果出现乱码,代表这根DDR内存条的第5颗粒已经损坏 ⑹. 8-F(6 )区域如果出现乱码,代表这根DDR内存条的第6颗粒已经损坏 ⑺. 0-7(7 )区域如果出现乱码,代表这根DDR内存条的第7颗粒已经损坏 ⑻. 8-F(8 )区域如果出现乱码,代表这根DDR内存条的第8颗粒已经损坏 注意DR的颗粒排列循序是-8 ⒉如果你是128M的双面DDR内存,如以上显示界面图: 1-16M ------------------------------------------------------------------------------------------------------------ 16-32M ------------------------------------------------------------------------------------------------------- 32-48M ------------------------------------------------------------------------------------------------------------ 48-64M------------------------------------------------------------------------------------------------------------- 从1M到64M的上面的4根虚线上出现乱码的话,说明这根内存的的第一面的颗粒有问题(判断哪个颗粒的好坏按照以上的说明) 64-80M ------------------------------------------------------------------------------------------------------------ 80-96M ------------------------------------------------------------------------------------------------------- 96-112M------------------------------------------------------------------------------------------------------------ 112-128M---------------------------------------------------------------------------------------------------------- 从64M到128M的上面的4根虚线上出现乱码的话,说明这根内存的的第二面的颗粒有问题(判断哪个颗粒的好坏按照以上的说明) 注意:在内存的PCB板上的两边标着1与92的代表第一面,93与184的代表第二面。1-128M 的8根虚线是用来区分两面区域的作用. ⒊SD的8位与16位的单面测法: ⑴. 0-7(1)区域如果出现乱码,代表这根SDR内存条的第8颗粒已经损坏 ⑵. 8-F(2)区域如果出现乱码,代表这根SDR内存条的第4颗粒已经损坏 ⑶. 0-7(3)区域如果出现乱码,代表这根SDR内存条的第7颗粒已经损坏 ⑷. 8-F(4)区域如果出现乱码,代表这根SDR内存条的第3颗粒已经损坏 ⑸. 0-7(5)区域如果出现乱码,代表这根SDR内存条的第6颗粒已经损坏

Js内存泄漏及解决方案

在IE下的JS编程中,以下的编程方式都会造成即使关闭IE也无法释放内存的问题,下面分类给出: 1、给DOM对象添加的属性是一个对象的引用。范例: var MyObject = {}; document.getElementById('myDiv').myProp = MyObject; 解决方法: 在window.onunload事件中写上: document.getElementById('myDiv').myProp = null; 2、DOM对象与JS对象相互引用。范例: function Encapsulator(element) { this.elementReference = element; element.myProp = this; } new Encapsulator(document.getElementById('myDiv')); 解决方法: 在onunload事件中写上: document.getElementById('myDiv').myProp = null; 3、给DOM对象用attachEvent绑定事件。范例: function doClick() {} element.attachEvent("onclick", doClick); 解决方法: 在onunload事件中写上: element.detachEvent('onclick', doClick); 4、从外到内执行appendChild。这时即使调用removeChild也无法释放。范例: var parentDiv = document.createElement("div"); var childDiv = document.createElement("div"); document.body.appendChild(parentDiv); parentDiv.appendChild(childDiv); 解决方法: 从内到外执行appendChild: var parentDiv = document.createElement("div"); var childDiv = document.createElement("div"); parentDiv.appendChild(childDiv);

win7内存自动检测

使用Windws内存诊断工具检查内存可靠性内存如果存在问题的话会让我们很伤脑筋,所以我们很多时候都需要内存检测工具。但其实,windows也是有内存检测工具来检测内存的,我们可以手动运行这些工具来检查内存。 对于存在问题或者瑕疵的内存通常自身并不会有很大的宣告来说明他们已经存在问题。如果有这类的问题发生,对于 Windows 7 or Windows Server 2008这类的新系统会通知用户使用相关的检测内存的工具进行检测内存。那么我们如何手动方式运行此类检查工具来达到防范于未然,把问题消灭在故障之前呢? 使用Windows内存诊断工具: 我们可以手动方式打开这个管理员工具箱里的内存诊断工具,命令如下: C:\Windows\System32\MdSched.exe 复制代码然后会看到如下界面: 按照上面的提示,我们选择推荐项默认的第一个,保存好现在需要保存的文档和工作后我们点击Restart now and Check for Problems 所有的操作都是自动的,此后计算机会重启,并登录到如下界面: 这个就是正在进行中的内存诊断界面。

使用F1我们可以手动定义一些需要调整和修改以及测试类型的参数:这个是快速模式,Basic测试最少的内存项目,因此检测速度最快!

然后这个我们使用上下键进行选择可以看到标准界面,这个也是默认的执行模式:

最后一个检测模式是终极!也是检测项目最多,内容最苛刻的级别,如果想对您的内存进行一个彻底类烧鸡类型的检测可以选择此项:

默认情况下,诊断工具会对您所选择的项目内容执行2次(两个轮回),但是您完全可以手动修改这个测试轮回的次数,范围是最大99次!使用TAB键定位到修改次数的地方键入需要的轮回次数。 我多麽希望能将此设置成任务计划来定期检测,但是似乎这个是不能的。(原文是:I wish there was a way to set this when configuring the scheduled task, but I have yet to fine one.) 按下F10进行应用,诊断工具开始全自动运行直到轮回次数为您设定的数值后,系统将会重启,并带来如下提示: 一般来说,根据你的内存大小和选择级别时间会有长有短,慢慢等待它过去吧,系统会自动重启的,不论是失败还是通过! 重启后的样子,如图我的电脑内存是没有任何错误的! 假设您等的不耐烦了,没有看到上面的画面,不用着急,我们可以进入事件查看器,来检索刚才时间段关于内存检查的信息报告! 另外,如果您电脑上安装有PowerShell,您可执行如下命令就像这样:

R.S.T内存检测软件使用方法

R.S.T 内存检测软件使用方法
作者: 阅读: 1177 时间: 2010-4-11 10:29:00 2010-
文章导读: 文章导读:闪动的一排测试数字代表内存 8 颗粒的测试情况。从左至右,0-7 代表第一区 域, 8-F 代表第二区域;0-7 代表第三区域,8-F 代表第四区域;……依次代表内存条的 8 颗 颗粒。⒈DDR8 位与 16 位的单面测法:
(R.S.T )UX 版 以下是内存测试软件的界面图:
0123456789ABCDEF0123456789ABCDEF 0123456789ABCDEF0123456789ABCDEF
1 2 3 4 5 6 7 8
如上图所示: 闪动的一排测试数字代表内存 8 颗粒的测试情况。

从左至右,0-7 代表第一区域,8-F 代表第二区域;0-7 代表第三区域,8-F 代表第四区 域;……依次代表内存条的 8 颗颗粒。 ⒈DDR8 位与 16 位的单面测法: ⑴. 0-7(1 )区域如果出现乱码,代表这根 DDR 内存条的第 1 颗粒已经损坏 ⑵. 8-F(2 )区域如果出现乱码,代表这根 DDR 内存条的第 2 颗粒已经损坏 ⑶. 0-7(3 )区域如果出现乱码,代表这根 DDR 内存条的第 3 颗粒已经损坏 ⑷. 8-F(4 )区域如果出现乱码,代表这根 DDR 内存条的第 4 颗粒已经损坏 ⑸. 0-7(5 )区域如果出现乱码,代表这根 DDR 内存条的第 5 颗粒已经损坏 ⑹. 8-F(6 )区域如果出现乱码,代表这根 DDR 内存条的第 6 颗粒已经损坏 ⑺. 0-7(7 )区域如果出现乱码,代表这根 DDR 内存条的第 7 颗粒已经损坏 ⑻. 8-F(8 )区域如果出现乱码,代表这根 DDR 内存条的第 8 颗粒已经损坏 寻修网 https://www.doczj.com/doc/6e21772.html,/提示:DDR 的颗粒排列循序是 1-2-3-4-5-6-7-8 ⒉如果你是 128M 的双面 DDR 内存,如以上显示界面图: 1-16M ----------------------------------------------------------------------------------------------------------16-32M ------------------------------------------------------------------
------------------------------------32-48M ----------------------------------------------------------------------------------------------------------48-64M-----------------------------------------------------------------------------------------------------------从 1M 到 64M 的上面的 4 根虚线上出现乱码的话,说明这根内存的的第一面的颗粒有问 题(判断哪个颗粒的好坏按照以上的说明)

Linux下利用Valgrind工具进行内存泄露检测和性能分析

Linux下利用Valgrind工具进行内存泄露检测和性能分析 [日期:2012-06-25] 来源:Linux社区作者:yanghao23 Valgrind通常用来成分析程序性能及程序中的内存泄露错误 一 Valgrind工具集简绍 Valgrind包含下列工具: 1、memcheck:检查程序中的内存问题,如泄漏、越界、非法指针等。 2、callgrind:检测程序代码的运行时间和调用过程,以及分析程序性能。 3、cachegrind:分析CPU的cache命中率、丢失率,用于进行代码优化。 4、helgrind:用于检查多线程程序的竞态条件。 5、massif:堆栈分析器,指示程序中使用了多少堆内存等信息。 6、lackey: 7、nulgrind: 这几个工具的使用是通过命令:valgrand --tool=name 程序名来分别调用的,当不指定tool 参数时默认是 --tool=memcheck 二 Valgrind工具详解 1.Memcheck 最常用的工具,用来检测程序中出现的内存问题,所有对内存的读写都会被检测到,一切对malloc、free、new、delete的调用都会被捕获。所以,它能检测以下问题: 1、对未初始化内存的使用; 2、读/写释放后的内存块; 3、读/写超出malloc分配的内存块; 4、读/写不适当的栈中内存块; 5、内存泄漏,指向一块内存的指针永远丢失; 6、不正确的malloc/free或new/delete匹配; 7、memcpy()相关函数中的dst和src指针重叠。 这些问题往往是C/C++程序员最头疼的问题,Memcheck能在这里帮上大忙。 例如: #include #include #include void test()

VS2005内存泄漏检测方法

VS2005内存泄漏检测方法 2010-03-09 09:13 247人阅读评论(0) 收藏举报VS2005内存泄漏检测方法 非MFC程序可以用以下方法检测内存泄露: 1.程序开始包含如下定义: view plaincopy to clipboardprint? 1. #ifdef _DEBUG 2. #define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__) 3. #else 4. #define DEBUG_CLIENTBLOCK 5. #endif // _DEBUG 6. #define _CRTDBG_MAP_ALLOC 7. #include 8. #include 9. #ifdef _DEBUG 10. #define new DEBUG_CLIENTBLOCK 11. #endif // _DEBUG

2.程序中添加下面的函数: view plaincopy to clipboardprint? 1. _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF|_CRTDBG_LEAK_CHECK_DF);

1. #ifdef _DEBUG 2. protected: 3. CMemoryState m_msOld, m_msNew, m_msDiff; 4. #endif // _DEBUG 1. #ifdef _DEBUG 2. m_msOld.Checkpoint(); 3. #endif // _DEBUG 4. 5.

内存泄露检测工具

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. MEMWA TCH-由Johan Lindh编写,是一个开放源代码C语言内存错误检测工具,主要是通过gcc的precessor来进行。 7. V algrind-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相关的泄漏类型。 10. IE Leak Detector (Drip/IE Sieve)-Drip和IE Sieve leak detectors帮助网页开发员提升动态网页性能通过报告可避免的因为IE局限的内存泄漏。 11. Windows Leaks Detector-探测任何Win32应用程序中的任何资源泄漏(内存,句柄等),基于Win API调用钩子。 12. SAP Memory Analyzer-是一款开源的JA V A内存分析软件,可用于辅助查找JA V A程序的内存泄漏,能容易找到大块内存并验证谁在一直占用它,它是基于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 V isual C++的一个插件运行。

硬盘和内存检测工具使用方法

硬盘和内存检测工具使用方法 四、硬盘问题 硬盘分区出现问题可以导致GHOST不能正确的认出硬盘的分区而出现错误提示或者是硬盘有坏道,数据在复制到坏道的过程中由于不能正确的复制而导致出现一些常见的错误提示从而导致GHOST安装的中断, ~~~~~~ 如果怀疑硬盘出现问题可以先对硬盘进行重新分区看能否解决问题~~~~如果重新分区后仍不能解决问题,那么可以用专业的硬盘检测工具对硬盘进行检测,看有无坏道 硬盘检测工具推荐用老毛子的 MHDD硬盘检测~~~~~~ 下边我简单的说明一下这款工具的使用方法。看图说话 1、启动MHDD硬盘检测 2、到这一步后选择硬盘的接口模式,一般选择默认即可 3、这里选择需要检测的硬盘,可以根据后边的型号确认需要检测的是哪款硬盘~~~按对应的数字键选择 4、出现该界面后点一下键盘上的 F4键,出现检测设置界面,可以根据需要自己进行设置,确认。如想结束设置开始硬盘检测的话,请再次点击 F4 键 5、出现硬盘检测界面,按键盘上的向右、向下方向键可以进行快进检测 6、 ESC为退出键,退出到命令提示符后输入“QUIT”可以退出MHDD硬盘检测软件 五、内存问题 内存出现问题也能导致GHOST恢复过程中死机或者提示不能正确的复制文件,这是由于内存在向硬盘传输数据的过程中由于内存自身的问题导致文件不能正确的传输到硬盘导致的~~~内存导致出现问题的最明显症状就是在GHOST完成后出现 c:\windows\system32\xxxx文件丢失,请重新放入系统安装盘

按R键修复之类的提示 具体的解决方法为:打开机箱侧边盖,看主板上插着几条内存,如果是两条或者两条以上的请先拔下多余的内存,只留下一条内存看能否解决问题,如果拔下内存后GHOST可以正常的进行复制跟安装,那就说明内存存在兼容性问题。如果这几条内存在以前是可以同时使用的,那么在GHOST XP安装完成后再重新插上其余的内存基本就可以正常使用的~~~~ 如果只有一条内存的情况,那么就要用到上篇帖子提到的清理内存金手指的方法对内存进行清理~~~如果还不能解决问题请更换一条新内存看问题能否解决 另外检测内存有无问题可以用 RST 内存检测类的软件,微软提供的内存检测工具也不错 这里我简单的介绍一下 RST内存检测软件的使用方法 1、启动 RST内存检测软件按 2、选择图中的第二项,对内存进行全面的检测 3、根据图中的说明看自己的内存有无坏块

内存测试方法大全

将各种硬件进行组装之后,我们成功地在该平台上安装了Windows Vista SP1中文旗舰版操作系统,并安装了相关测试软件。为了令测试更具有普遍意义,部分测试只采用了基本的默认设置,而且处理器并未超频。好!现在我们就正式进入测试环节。 CPU-Z测试 Windows Vista操作系统安装好以后,从计算机右键属性里可以看到系统的大致信息。Windows 版本为Windows Vista Ultimate SP1,不过系统尚不能完全认出处理器型号,显示为@ 0000 @ 3.20GHz,内存容量3GB,系统类型为32位操作系统。 如果用CPU-Z 1.46版测试的话,虽然软件已经可以认出处理器代号为Bloomfield,支持Socket 1366 LGA插槽,也能够正确识别出L3缓存等参数,但是处理器名称一栏只会显示Intel Processor。 不过如果用CPU-Z 1.48版查看的话,软件已经可以成功识别出英特尔Core i7 Extreme 965处理器,Core i7新图标看上去相当赏心悦目。Core i7 Extreme 965采用45纳米制程,默认核心电压为1.165V,支持MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2以及EM64T等指令集。 Core i7处理器可以支持“Turbo Mode”技术——英特尔智能加速技术,所以处理器可以独立控制每个核心的电压和频率,也能为内存控制器、I/0单元以及缓存独立控制电压,从而可以在空载或者非满载情况下,让部分核心休息实现智能省电的功能,同时把富余的提速能力加到正在运行的核心上。“Turbo Mode”是Nehalem微架构的独特创新技术。 从CPU-Z软件截图上可以看出,默认情况下Core i7 Extreme 965会自动调整倍频,如上图所示此时处理器倍频仅为12倍,总线频率133.3MHz,处理器核心频率仅为1599.7MHz。不过虽然这时候处理器核心频率仅为1599.7MHz,但是这个速度并非锁定的,这时只要稍加动作的话,处理器倍频就会上升,最终处理器核心频率也会上升。注:Core i7 Extreme处理器支持超频功能,Core i7 Extreme-965的标准工作主频为3.2GHz。 如图示,处理器倍频也会突然上升到24倍,这时候总线频率仍然为133.3MHz,处理器核心频率上升为3201.8MHz。实际观察可以发现,默认设置下Core i7 Extreme 965处理器的倍频会在12倍至24倍之间变动。不过从主板BIOS里关闭Speed Step功能以后,“变频”功能不再起作用。 L1缓存分别由4×32KB的数据缓存(D-Cache)和4×32KB的指令缓存(I-Cache)组成,L2缓存则为4×256KB,L3缓存由四个核心共享,容量为8MB。 从主板信息里可以看到,主板厂商为英特尔,型号为DX58SO,采用英特尔X58芯片组搭配ICH10R 南桥芯片。BIOS版本为SOX5810J86A.1354.2008.0731.1502,发布日期为2008年7月31日,显卡接口为PCI-Express x16。 内存类型为三通道DDR3,容量为3072MB,时序为7-7-7-20。SPD选项里可以看到,插槽1里的DDR3内存容量为1024MB,最大带宽为PC3-8500F(533MHz),厂商为海盗船,编号为CM3X1024-1333C9,出厂日期为2008年第15周,看来这条内存诞生已经有段时间了,此外时序表里也可以看到不同频率下此内存对应的时序。 -Z浏览 此次随同英特尔Core i7 Extreme 965提供的还包括目前市场上最强悍的单芯片怪兽级显卡GeForce GTX 280,GTX280最鲜明的特点就是怪兽级的身材,这块显卡的长度达26CM,高度和厚度也

相关主题
文本预览
相关文档 最新文档