javascript - 堆快照标识符是否保证单调递增?

标签 javascript google-chrome-devtools profiling heap-dump

我正在使用堆快照来调试潜在的内存问题。由于文档指示对象以这种格式显示:

ObjectConstructorName@NumericIdentifier

在哪里NumericIdentifier is :

This is an object ID. Displaying an object's address makes no sense, as objects are moved during garbage collections. Those object IDs are real IDs — that means, they persist among multiple snapshots taken. This allows precise comparison between heap states. Maintaining those IDs adds an overhead to GC cycles, but it is only initiated after the first heap snapshot was taken — no overhead if heap profiles aren't used.

我想知道标识符是否保证单调递增?即给出:

ObjectConstructorName@10001
ObjectConstructorName@10002

我可以相信第一个对象比第二个对象更旧(之前已分配)吗?

如果是 - 保证有多强? (例如,它是否包含在构造函数名称之间?)

最佳答案

只是跟进。在与几位 V8 工程师交谈后:

  • 他们不确定该保证目前是否有效。
  • 他们没有/没有计划做出这样的保证,也不是可以依赖的人。

关于javascript - 堆快照标识符是否保证单调递增?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51427439/

相关文章:

javascript - 如何仅在递归完成后才进行 Promise 解析?

javascript - ajax简单的js变量到php

javascript - 仅当我有两个 <li> 标签时图像才会更改

javascript - Chrome 调试器只在第一行停止

c - 使用 Eclipse 时在 Windows 上分析 C 代码

javascript - CSS 动画和 Z-index

javascript - source map HTTP 请求不发送 cookie 头

google-chrome-devtools - 在 chrome 调试器中禁用变量值信息

c++ - 匹配开始/结束分析调用

java - 比较 VisualVM 和 Eclipse TPTP