2013-11-22 80 views
0

我在玩Chrome的开发工具及其堆分析器。我无法完全弄清楚如何在页面上找到JavaScript中定义的变量。你可以看到一些令人着迷的东西,但是搜索或浏览它是一个挑战。例如,如果您在页面正文中具有“var x = 42;”的小脚本,您如何在堆配置文件中找到它?如何在Chrome开发工具堆分析器中查找JavaScript变量?

回答

0

42不是堆对象。这是因为性能和记忆。如果一个整数适合31位(一位保留用于标记指针/非指针),则v8按原样保存它,否则v8为它分配一个堆对象。请参阅http://www.youtube.com/watch?v=hWhMKalEicY

因此,在您的情况下,v8会在上下文中保留一个插槽,将名称“关联”到插槽并将存储区42“关联”到插槽中。在double的情况下,字符串,数组或对象v8将存储指向它的指针。堆分析器扫描堆对象的堆。之后,它会扫描每个堆对象的内容以获取指向其他对象的指针。结果它得到了堆图。因此堆图不包含纯整数。

相关问题