【问题标题】:JavaScript instance vs prototype methods and heap snapshot data using Chrome Dev Tools使用 Chrome 开发工具的 JavaScript 实例与原型方法和堆快照数据
【发布时间】:2013-11-16 02:08:31
【问题描述】:

我在 Chrome 开发工具中获取了一个堆配置文件,但我不确定如何解释数据。作为测试,我创建了 10,000 个 WidgetBuilder 对象,每个对象都有自己的方法。我想对实例和原型的存储方法进行剖析,看看在我的页面加载时这会如何影响内存和性能。

  1. 我应该关注保留尺寸还是浅尺寸?
  2. 这些列中列出的值是否以字节为单位?
  3. 什么是大量内存?

【问题讨论】:

    标签: javascript performance google-chrome-devtools


    【解决方案1】:

    您可能想从这里开始:

    https://developers.google.com/chrome-developer-tools/docs/heap-profiling

    它详细介绍了如何理解您正在阅读的内容。至于什么被认为是大量内存,这是一个棘手的问题。如果您的网站是针对移动设备的,我会从那里开始限制。为了进行良好的比较,我建议对您每天使用的站点运行分析器并观察那里的内存消耗。

    如果您发现您使用的内存比 gmail 多,您可能需要重新考虑 ;)

    我还建议查看 jspref:

    http://jsperf.com/prototype-vs-instance-functions

    在该网站上已经完成了很多关于性能测试的工作。您也许可以为自己节省一些时间。

    【讨论】:

    • 我之前确实看过文档,它说:“对象本身持有的内存大小称为浅大小。”和“保留大小列显示同一组对象中的最大保留大小。”我不清楚这两个陈述之间的区别。有什么想法吗?
    • 谷歌上的第一个链接:developers.google.com/chrome-developer-tools/docs/… tldr;浅是对象本身正在消耗多少内存,保留是对象防止被垃圾收集的内存量。如果对象引用了其他对象,那么那些其他对象必须保留在内存中,直到第一个对象消失。
    猜你喜欢
    • 2016-05-06
    • 2013-01-26
    • 1970-01-01
    • 1970-01-01
    • 2012-09-17
    • 2015-06-07
    • 1970-01-01
    • 2015-06-23
    • 2017-01-15
    相关资源
    最近更新 更多