zoukankan      html  css  js  c++  java
  • javascript js 内存泄露工具使用

    javascript内存泄露工具使用  

    原文:http://lanhy2000.blog.163.com/blog/static/43678608201121472644851/

    2011-03-14 07:26:44|  分类: T-Web开发 |  标签:泄露  sieve  内存  javascript  leaks   |字号 订阅

     
     

    javascript内存泄露的问题一直以来都不受到大家的重视,原因是对用户的影响没有太实际的表现,或许近几年内存发展迅速。脚本内存再泄露也不会有太大影响。
    当然作为前端开发的同学们,就不能有这样的侥幸心理。出现memory l
    javascript内存泄露的问题一直以来都不受到大家的重视,原因是对用户的影响没有太实际的表现,或许近几年内存发展迅速。脚本内存再泄露也不会有太大影响。
    当然作为前端开发的同学们,就不能有这样的侥幸心理。出现memory leaks很大程度上是因为程序的不成熟和编码不太规范造成的。不过,这里就不说如何出现问题的,对问题的出现有兴趣可以参考以下地址:

    Understanding and Solving Internet Explorer Leak Patterns
    IE's memory-leak fix greatly exaggerated
    Memory Leakage in Internet Explorer – revisited
     这里主要说说,目前几个检查javascript内存泄露的工具使用方法:

    首先我们用到的工具有三个 Drip/sIEve ,Javascript Leaks Detector, leak monitor。其中前两个是用于检查ie的,leak monitor 是用来检查firefox的情况的。这里重点说一下ie下的这两个工具,由于firefox的GC机制比ie强壮,只要ie的问题消除了,其他浏览器基本上不会有什么问题。

     1.Drip/sIEve

    Drip和sIEve的作者应该是同一个人,连open souce上的项目都是在一起的。不过,平时我们主要使用sIEve就可以了,sIEve的功能比Drip强大一些 

    javascript内存泄露工具使用 - lanhy2000 - 二老板 
    sIEve 界面很简单,左侧:内嵌了一个浏览器控件,我可以访问任何网址,下方还有个内存检查,这样我们可以方便看出内存的升降情况以及dom使用数量曲线。

    右侧面板,我们可以通过 Show in use 看到目前页面使用的dom的情况,Show Leaks 可以看到内存泄露的dom。当然每次显示泄露的情况必须是页面刷新后,看到上一个页面的泄露情况。

    同时通过右侧的数据颜色,我们可以看到内存的升降和具体的数量级

    javascript内存泄露工具使用 - lanhy2000 - 二老板
    不过sIEve的工作原理是对所有dom进行了一次hack,然后自己判断那些dom没有被释放掉,但是具体的情况比较难分析出来。而且跟踪有问题的dom需要一定技巧,对于大型的应用程序,跟踪难度大。

     不过用来检测小模块的内存使用情况还是一个不错的选择,特别是大项目模块细分后,对每个模块的单独测试还是比较不错的
     谢谢怿飞同学提示的下载地址, Drip/sIEve下载地址:
    http://home.orange.nl/jsrosman/

    2. Javascript Leaks Detector

    这是来自微软GPDE团队的一个小工具,下面简称JLD

    官网: http://blogs.msdn.com/gpde/pages/javascript-memory-leak-detector.aspx

    安装后,我们可以在ie浏览器的 查看->浏览器栏中找到

     javascript内存泄露工具使用 - lanhy2000 - 二老板
     JLD强大之处在于能够模拟IE6和IE7的GC情况,和真实的回收情况。这样可以做一个比较。

      javascript内存泄露工具使用 - lanhy2000 - 二老板

    这里通常能只能反应IE6和IE7的理想情况,我们需要选择下面Actual Leaks来反映当前浏览器的真实情况。

    浏览器刷新后,我们就可以看到上次页面的结果了,绿色代表没有发现内存泄露,红色代表发现了内存泄露,蓝色是当前加载完成的页面,当然还有黑色,是指正在加载的网页

    当我们展开一个有问题的页面时,

     javascript内存泄露工具使用 - lanhy2000 - 二老板
    我们可以看到一个有问题分支Leaks.这里列出了有问题的节点,同时还能帮我们列出出现问题的脚本在什么地方。

    这点非常方便我们定位出泄露的问题所在。不过要使用脚本调试,我们必须要打开ie的脚本调试功能

     javascript内存泄露工具使用 - lanhy2000 - 二老板
    在ie选项的高级中,我们去掉这两个勾即可

    3. Leak Monitor

    这是firefox上唯一一个检查内存泄露的工具,不过这里舜子不太推荐使用。因为firefox的内存GC机制比IE强悍,不必作为重点考虑对象。只要ie的问题能处理好,firefox上基本上也没有什么问题。而且有ie这两个强悍的软件帮忙基本上能解决大部分问题了。

     javascript内存泄露工具使用 - lanhy2000 - 二老板

     可惜这个工具的体验很糟糕,会让人很有一种抓狂的感觉。如果您还要继续尝试可以到这里下载: https://addons.mozilla.org/zh-CN/firefox/addon/2490
     

     
     
     
     
      评论这张
    转发至微博
    转发至微博
    0   分享到:        
    阅读(1036)| 评论(0)| 转载 (0) |举报
  • 相关阅读:
    探讨SQL Server并发处理存在就更新七种解决方案
    集合随机打乱
    订单并发5000的排队机制
    10款面向HTML5 画布(Canvas)的JavaScript库
    抽象类和接口的区别以及使用场景(记)
    常用的正则表达式
    webview加载url出现空白页面,有些页面没问题
    SQL常用语句
    Android Studio 简单介绍和使用问题小结
    Android中获取应用程序(包)的信息-----PackageManager的使用(一)
  • 原文地址:https://www.cnblogs.com/gaoxue/p/3154407.html
Copyright © 2011-2022 走看看