【问题标题】:JavaScript Memory: Heap, Native, WebGL/GPUJavaScript 内存:堆、本机、WebGL/GPU
【发布时间】:2013-11-05 04:23:00
【问题描述】:

是否可以在 Chrome 中查看 JavaScript 的所有内存来源?据我所知,以上三个是可用的。

堆是您的基本 GC-able JS 对象。 “本机内存”不是堆的一部分 .. 像 DOM、TypedArrays、2D 上下文 ImageData 等。 WebGL 也是一种内存来源。

我想知道我的代码使用了多少。 Chrome 最近抛弃了他们的 Native profiler。堆分析对于大内存 Web 应用来说根本不够。

有没有办法获取有关我的代码正在使用这些内存源的百分比的有用信息?

【问题讨论】:

  • 您是否使用过开发者工具 (F12) 并点击了Profiles 标签?
  • 是的。我倾向于使用 Canary,因此可能与稳定的 Chrome 有所不同。 Paul Irish 进行了 Native Profiler 实验,但最近被取消了。可以看到 Heap 对象是 Native 的包装器(即 C/C++ chrome 本机数据结构),因此会被 GC,但是您看不到附加了多少 Native 内存,也看不到您有多少 Native 内存有可用的。我想我是对的。

标签: javascript debugging google-chrome memory


【解决方案1】:

我使用 chrome 任务管理器(更多工具 | 任务管理器)估计本机内存。它显示了私有内存、GPU 内存和 JavaScript 内存。 private memory - javascript memory 将是本机内存的近似值。但它不能表明不同种类的资源分配了多少内存。

如果页面有画布,它还会显示 GPU 内存。

【讨论】:

  • 是的,我认为这是我们目前最好的。 Chrome 不久前尝试了原生内存配置文件(我相信是 Paul Irish),但没有持续。
  • 我刚刚发现如果选择“memory-infra”标志,“chrome://tracing”可以显示更多关于内存使用方式的详细信息
猜你喜欢
  • 2015-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-10
  • 2010-11-04
  • 2015-12-16
  • 2019-09-01
  • 1970-01-01
相关资源
最近更新 更多