随着Web2.0技术的发展,富客户端的应用可以说是越来越多,给各个浏览器造成很大的压力。以前的测试可能只关注于服务器端,如今却需要研究浏览器端的资源使用情况,如CPU利用率、响应时间和内存占用。根据实际测试中的结果,有相当多的JavaScript代码编写存在缺陷,导致代码在IE浏览器时发生内存泄露,有关泄露的原理,可以参考微软网站上的一篇技术文章,《Understanding and Solving Internet Explorer Leak Patterns》,说白了,就是因为Dom和javaScript采用不同的垃圾回收机制,所以出现了各种泄露。需要说明的是,基本上在IE上出现的泄露代码在FireFox不会出现,IE的浏览器组件根本上是一个COM组件,采用计数回收,FireFox在这方面做的比较好,不过我发现即使没有泄漏,但是FireFox运行一段时间会响应慢、CPU高等,令人郁闷…说远了,回到正题。
目前IE的常用内存泄露工具主要有两个:sIEve和IE JavaScript Memory Leak Detector。
官方网站: http://home.wanadoo.nl/jsrosman/
下载:Download sIEve-0.0.8.exe
这是一款独立的桌面exe程序,无需安装,内部嵌入了一个IE 浏览器控件,用户可以通过该控件访问需要测试的网页。
这款工具源于Sourceforge的开源项目ieleak,但不知为何后来开发停滞了,没有版本的更新,只能看到留下的源代码。
从代码中可以看出,sIEve监控DOM对象中的引用数目,如果在页面卸载之后,还存在引用大于0的DOM对象,它就会显示这些DOM对象,同时还会实时的显示在用户操作的时候内存和DOM泄露的情况。
优点:有源代码、可以参考学习,独立工具,无需安装。我记得看过一则新闻,IE8发布时,IE的开发经理还建议开发人员使用sIEve调试内存泄漏情况。
缺点:只能提供没有释放的DOM对象,但是不知道DOM对象是javaScript代码在何时何处导致泄漏的,无法定位泄露原因;版本没有更新。
- IE JavaScript Memory Leak Detector
官方网站:http://blogs.msdn.com/gpde/pages/javascript-memory-leak-detector.aspx
这款工具由微软的内部员工开发,功能看起来比sIEve要强大。
IE JavaScript Memory Leak Detector需要安装,作为IE的插件形式存在,可以在工具栏的菜单中启用和关闭,启动之后在IE的下端出现一个工作窗口。
这个工具将监控代码注入到了IE浏览器中的动态链接库中,IE在做DOM或者JavaScript解释时,工具都会截获、记录并转发,IE并没有意识到IE JavaScript Memory Leak Detector的存在。
用户可以在IE中打开IE JavaScript Memory Leak Detector,然后访问需要测试的网页,在切换网页时,IE JavaScript Memory Leak Detector会报告可疑的内存泄露,包括泄露的DOM对象,引起泄漏的引用代码和代码出处,这个工具对于简单的javascript代码毫无疑问是非常好用的,但是我在实际使用当中发现对于复杂的代码,如使用了dojo工具包的Javascrpt代码,即使发生了内存泄露,引起泄漏的引用代码和代码出处这两项功能很难派上用场,最后都会指向dojo的源文件,而且指的位置也可能出错,比如定位到了注释上,汗….
遗憾的是,这个工具除了beta版之后,再也没有更新。
另外,IE JavaScript Memory Leak Detector可以分别模拟IE6\IE7的泄露情况,根本区别是IE7对内存泄露问题的一大进步是可以回收所有attach到DOM树上的泄露对象。
优点:包含泄露定位功能。
缺点:对于复杂的Javascript代码,无法准确定位泄露位置。
分享到:
相关推荐
windows下c++内存泄露检测工具使用方windows下c++内存泄露检测工具使用方
ie客户端测试内存泄露工具,内置ie浏览器
JS内存泄漏检测工具:IEJSLeaksDetector
移植了LeakTracer库到安卓平台,可以直接使用,带有例子
内存泄露检测工具boundschecker11
arm环境内存泄漏检测工具valgrind,用于检测arm环境下的内存泄漏
一款很好用 的内存泄漏检测工具,对初学者是个很好的学习机会
LeakDiag和LDGrapher,windows内存泄漏排查工具,用于进行一些泄漏位置的查找以及可视化展示。
Lua内存泄露检测工具LuaMonitor下载.rar 对于Lua的性能检测提供良好的视图分析 可以获取当前内存图,方便对应项目的内存管理 可以获取热点函数相关信息
内存泄露检测工具,帮助程序员自动化检测内存泄露,定位内存泄露位置,快速方便的排除内存泄露问题。
推荐4款linux下的检测c语言编写的程序的内存泄漏工具 C语言和其他语言相比最大的特色就是能够操作内存 但是最常犯的错误也是内存泄漏(管杀不管埋) 所以我们需要用一些工具来帮助我们检测是否存在内存泄漏,存在多少 ...
一个非常好用的C++内存泄漏检测工具以及使用例子,可以方便地检测出开发的程序中内存泄漏情况,程序员必备工具之一。
内存泄漏 Web 的内存泄漏检测工具 更多信息请查看 www.iubang.com
js内存泄漏检测工具;内存泄漏检测工具IE Javascript leaks detector
工具为评估试用版; 可以分析.net平台下编写的各类软件; 可以分析扩管类和非托管类代码;
内存泄露检测工具--VisualLeakDetector。在软件调试尤其是底层开发时候用得很多的。
C++ 内存 泄露 检测器 对于一个c/c++程序员来说,内存泄漏是一个常见的也是令人头疼的问题。已经有许多技术被研究出来以应对这个问题
介绍了使用内存泄漏检测工具valgrind的安装和使用,内附安装包,测试程序,使用说明文档。
两个超棒的内存泄露检测工具,老外写的..