随着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。

  • sIEve

官方网站: 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

装一下这款检测软件吧:JavaScript Memory Leak Detector

安装方法:

  1. 很明显先解包,就可以看到JSLeaksDetector.msi文件,双击,一路next
  2. 这样就安装完成了,可是一开始俺一直找不到怎么打开,在哪打开。
  3. 点击工具(IE7 右侧的那个),路径为“工具(o) -> 工具栏(T) -> 浏览器栏(E) -> js memory leaks detector”,勾上就可以了 然后IE的下方就会出现一截,哇哈哈哈哈 怎么用?自己看看下面的文章吧
  4. 还有,可…

这款工具由微软的内部员工开发,功能看起来比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代码,无法准确定位泄露位置。

IE浏览器内存泄露检测工具相关推荐

  1. Ubuntu下内存泄露检测工具Valgrind的使用

    在VS中可以用VLD检测是否有内存泄露,可以参考http://blog.csdn.net/fengbingchun/article/details/44195959,下面介绍下Ubuntu中内存泄露检 ...

  2. 精准 iOS 内存泄露检测工具

    MLeaksFinder:精准 iOS 内存泄露检测工具 发表于 2016-02-22   |   zepo   |   23 Comments 背景 平常我们都会用 Instrument 的 Lea ...

  3. Visual Studio内存泄露检测工具

    使用简介 在写程序的过程中,难免会遇到内存泄露的时候,这个时候如果手工查找内存泄露,不说方法没有通用的,就是真的要自己手工查找也是很耗时间和精力的.诚然,我们可以借助一些工具,而且我们还会惊奇地发现这 ...

  4. 几种内存泄露检测工具的比较

    概述 内存泄漏(memory leak)指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况,在大型的.复杂的应用程序中,内存泄漏是常见的问题.当以前分配的一片内存不再需要使用或无法访问时,但是却 ...

  5. memwatch内存泄露检测工具

    工具介绍 官网 http://www.linkdata.se/sourcecode/memwatch/ 其功能如下官网介绍,挑选重点整理: 1. 号称功能: 内存泄露检测 (检测未释放内存, 即 动态 ...

  6. 内存泄露检测工具比较

    From: http://blog.163.com/zhuang_qianxin/blog/static/29765138201051092529107/ 1.     ccmalloc-Linux和 ...

  7. 内存泄露检测工具VLD相关配置

    参考链接: VLD(Visual LeakDetector)内存泄露库的使用 VS2019编译 内存泄漏检测工具VLD 一.源码下载 源码下载链接:https://github.com/KindDra ...

  8. linux 内存泄露检测工具——valgrind

    valgrind是linux下一个可用调试.查看内存泄露的工具,其官方网站:http://www.valgrind.org/ 使用时可用命令: valgrind -v  --leak-check=fu ...

  9. kmemleak的使用---内存泄露检测工具【转】

    转自:http://blog.csdn.net/lishenglong666/article/details/8287783 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 内 ...

最新文章

  1. android EditText 修改光标的颜色值
  2. vue 文字无缝滚动_手把手教你搭建 Vue 聊天室
  3. SVN的VS.NET插件——AnkhSVN
  4. Druid-目前最好的连接池
  5. [Redux/Mobx] redux的thunk作用是什么?
  6. matlab画圆的命令_matlab画半圆
  7. java压栈重复字符串_Java 实例 – 压栈出栈的方法实现字符串反转
  8. python求极值(极大值、极小值)
  9. fragment+tabhost与viewpager
  10. java小数位-DecimalFormat(转)
  11. 用canvas画时钟
  12. Web 项目中,MySQL 最新驱动下载、及配置
  13. Hive教程(01)- 初识Hive
  14. arcgis怎么压缩tif文件_PDF文件怎么压缩才能变小?这样压缩,真的很简单!
  15. php循环语句时间戳转换,php怎么实现时间戳转换为时间
  16. 计算机二级成绩划分标准,计算机二级成绩划分标准
  17. 国美易卡对IP层数据进行处理,国美易卡对TCP/IP的封装
  18. 基于Python爬虫的大众点评商家评论的文本挖掘
  19. 东北大学秦皇岛分校通信工程中外合作2020级C/CPP实验8
  20. 游戏原画设计HTML5模板是一款适合网页游戏原画设计作品展示的HTML5网站模板。

热门文章

  1. 失业两个月,35岁之后测试工程师拿什么养家?
  2. linux grep命令Ff和wf从两个文件中提取相同内容的行
  3. qq如何实现在线状态服务
  4. 纯真的年代 暖暖的亲情——我眼中的彼得(电影《纳尼亚传奇》观后感)
  5. matlab怎么建立一元线性回归方程,MATLAB实现一元线性回归的多种方式
  6. Java输出语句中“+”的作用
  7. 字符串里面的html转义字符串,HTML转义字符串
  8. GD32移植CoreMark实现性能测评
  9. Arch Linux 0.7 (Wombat) 安装指南(转)
  10. 基于EKF滤波的二阶RC电池模型的Soc估计仿真