【问题标题】:How to use IE7 Javascript memory leak detectors?如何使用 IE7 Javascript 内存泄漏检测器?
【发布时间】:2010-11-18 16:12:32
【问题描述】:

我在 SO 和 also here 的其他地方提到的 IE 下载了“Javascript Memory Leak Detector”,但不知道如何使用它。显然曾经有另一篇博文可能涉及到这个细节,但是从上面的链接到它的链接被破坏了。

我也尝试过使用 sIEve,它做得很好,只是我无法让“复制”功能正常工作。也就是说,我想复制各种统计数据,以便我可以离线操作它们并为我的经理准备报告。然而,正如我所说,复制数据存在问题,因此在我将这些问题报告给开发人员之前,如果他们解决了问题,我所能得到的只是非交互式屏幕截图。

所以我问 SO 社区他们是如何使用上述工具的,或者他们是否知道任何其他易于使用的工具来测量 IE7 Javascript 内存泄漏,我可以使用这些工具来准备管理报告,例如您可以从中导出原始数据。

提前致谢

【问题讨论】:

    标签: javascript internet-explorer memory-leaks


    【解决方案1】:

    这是我自己在大约 sIEve 方面的经验。自从我问这个问题以来的 24 小时。它提供了充足的、可视的、尽管是非交互式的数据,例如“只读”。它确实提供了一种方法来“复制”它在各种“显示”网格中显示的数据,在我的例子中是“显示使用中”。但是,当粘贴到文本文档中时,这导致的数据量远远超出了网格中实际显示的数据量,而且非常丰富。

    让我详细说明我的用例。 sIEve 本身并不表示“泄漏”,而是表示“孤儿”。要了解这在 sIEve 用语中的含义,请参阅 this page

    使用 sIEve 浏览器访问我感兴趣的页面后,我使用“显示使用中”功能来显示包含大约 10 或 12 个字段的网格。通过单击标题可对列数据进行排序,因此我能够对“孤立”列进行排序,然后选择指示“是”的行范围,然后单击“复制”

    但是我首先问了这个问题,因为 Copy 似乎没有工作,或者 sIEve 崩溃了。我在大约三分之一或一半的时间里继续遇到这些问题,但仍然坚持不懈,最终能够将原始数据粘贴到文档中。

    正如我所提到的,原始数据的数量非常多。所以到目前为止我唯一开发的是一个用于计算“记录”的正则表达式。每条记录都以一行开头,如下所示:

    http://localhost:8086/yms_web/yardmanager.do    (1 reference)
    

    它将始终指示引用的数量,因此这是我开发的用于在原始数据中查找这些行的正则表达式;请注意,我为此使用 Cygwin:

    $ egrep '\([0-9]+ reference[s]?\)' before_trailer_adjust_clicks.txt
    http://localhost:8086/yms_web/yardmanager.do    (5 references)
    http://localhost:8086/yms_web/yardmanager.do    (1 reference)
    http://localhost:8086/yms_web/yardmanager.do    (2 references)
    

    正如您所见,正则表达式正确处理了多个引用的可能性;我还没有看到它处理有两位数引用的情况,但我相信它应该。

    无论如何,通过将上述输出传递给 wc -l 您可以快速找出您有多少行,因此在我的情况下,通过从“孤儿”等于“是”的网格中捕获数据,然后执行此操作通过连续的 HTTP 请求,我能够看到孤儿的数量是如何增加的,例如:

    $ egrep '\([0-9]+ reference[s]?\)' before_trailer_adjust_clicks.txt | wc -l
    3
    
    $ egrep '\([0-9]+ reference[s]?\)' after_trailer_adjust_click.txt | wc -l
    4
    
    $ egrep '\([0-9]+ reference[s]?\)' after_create_rftask_click.txt | wc -l
    4
    
    $ egrep '\([0-9]+ reference[s]?\)' after_create_rftask_close.txt | wc -l
    66
    
    $ egrep '\([0-9]+ reference[s]?\)' after_trailer_adjust_close.txt | wc -l
    163
    

    当然,可以在 bash 脚本中调用 egrep 命令,循环遍历感兴趣的文件,但我还没有走那么远。

    顺便说一下,这是一个 ExtJS 应用程序,我在他们的论坛上询问并得到了一些很好的建议,并且能够显着减少孤儿的数量!

    希望这对 SO 上的其他人有所帮助,但不确定为什么这个问题被投票关闭

    【讨论】:

      【解决方案2】:

      链接已过期,修改为root of the blog,通过标签定位文章。

      JavaScript Memory Leak Detector (v2)

      【讨论】:

      • 谢谢。我很可能会用我今天开发的一些 cygwin/命令行命令来“回答”我自己的问题,以解析 sIEve 数据。
      • 我现在已经尝试过这个 Javascript 内存泄漏检测器工具,并得出结论 sIEve 至少对我来说是更有用的工具。前者不像 sIEve 没有 A) 表示“孤儿”,这绝对是内存增加的原因,因为一旦我减轻了它们,内存就没有像以前那样增加,或者 B) 提供下载和操作数据以进行报告的能力,至少在我看来
      • 该链接似乎无效。你知道我现在在哪里可以找到这个吗?
      猜你喜欢
      • 1970-01-01
      • 2012-07-16
      • 2011-08-21
      • 1970-01-01
      • 1970-01-01
      • 2019-09-09
      • 2011-12-13
      • 1970-01-01
      相关资源
      最近更新 更多