【问题标题】:How to measure memory usage and efficiency?如何衡量内存使用率和效率?
【发布时间】:2011-11-20 08:37:54
【问题描述】:

我有一个使用大量 JavaScript 的网络应用程序,旨在不间断地运行(数天/数周/数月)而无需重新加载页面。

但是,Chrome 会在几个小时后崩溃。 Safari 不会经常崩溃,但速度确实会大大降低。

如何检查问题出在我的代码还是浏览器本身?我可以做些什么来解决这些问题?

【问题讨论】:

    标签: javascript browser memory-management


    【解决方案1】:

    使用Chrome Developer Profile Tools,您可以获得CPU 使用情况的快照并获取内存快照。

    拍摄 2 张​​快照。选择第一个并切换到如下所示的比较

    三角列是数学符号delta或change。因此,如果您的增量是正数,那么您将在内存中创建更多对象。然后我会在给定的时间段后拍摄另一个快照,比如 5 分钟。然后再次比较结果。看delta

    如果您的增量是恒定的,那么您在内存管理方面做得很好。如果是否定的,您的代码是干净的,并且您使用过的对象能够被正确收集,这又是一项很棒的工作。

    如果你的增量不断增加,你可能有内存泄漏。

    还有,

    document.getElementsByTagName('*'); // a count of all DOM elements
    

    看看你是否在稳步增加你的 DOM 元素会很有用。

    【讨论】:

    • 嗯...是的,我已经开始使用“堆分析器”,但不知道如何读取结果。
    【解决方案2】:

    Chrome 也有“about:memory”页面,但我同意 IAbstractDownVoteFactory - 开发者工具才是最佳选择!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-25
      • 1970-01-01
      • 2012-09-20
      相关资源
      最近更新 更多