V8 Javascript堆转储架构

Sch*_*ems 9 javascript v8 heap-dump google-chrome-devtools

我正在尝试了解Google Chrome工具生成的heapdump的内容.我知道已有一个浏览器内堆转储检查器,但我有兴趣编写一个解析JS堆转储作为练习的CLI.我无法找到有关堆转储内容结构的任何文档.它们是人类可读的,但检查文件的格式不是很清楚

这是一个随机片段:

"HTMLOptionElement",
"XMLHttpRequestEventTarget",
"about:blank",
"clearModifier",
"resetModifiers",
"/devtools/docs/demos/memory/example1",
"HTMLIFrameElement",
"https://www.google.com/jsapi?autoload=%7B%22modules%22%3A%5B%7B%22name%22%3A%22search%22%2C%22version%22%3A%221.0%22%2C%22callback%22%3A%22__gcse.scb%22%2C%22style%22%3A%22https%3A%2F%2Fwww.google.com%2Fcse%2Fstyle%2Flook%2Fv2%2Fdefault.css%22%2C%22language%22%3A%22en%22%7D%5D%7D",
"HTMLLinkElement",
"HTMLContentElement",
"window.__SSR = {c: 1.2808007E7 ,si:1,su:1,e:'richard@example.com',dn:'Richard Schneeman',a:'bubble',at:'AZW7SXV+1uUcQX+2WIzyelLB5UgBepsr1\\/RV+URJxwIT6BmLmrrThMH0ckzB7mLeFn1SFRtxm\\/1SD16uNnjb0qZxXct8\\x3d',ld:[,[0,12808007,[]\n,1,70]\n]\n,r:'https:\\/\\/developer.chrome.com\\/devtools\\/docs\\/demos\\/memory\\/example1',s:'widget',annd: 2.0 ,bp: {}, id:'http:\\/\\/www.google.com\\/chrome'}; document.addEventListener && document.addEventListener('DOMContentLoaded', function () {gapi.inline.tick('wdc', new Date().getTime());}, false);",
"onLoaded",
"HTMLAllCollection",
"onDocumentKeyDown",
Run Code Online (Sandbox Code Playgroud)

是否存在关于chrome堆转储结构的文档?是否有标准的javascript堆转储格式或每个引擎都有自己的专有标准?

smi*_*off 0

不幸的是,没有标准 JS 堆格式之类的东西。快速谷歌搜索“v8 heap dump format”给出了几个结果,但没有一个是超级详细的。有node.js heapsnapshot解析器扩展,v8源代码包含最新信息:v8-profiler.h