在JavaScript中计算隐藏的类

时间:2015-07-25 13:02:23

标签: javascript v8

如何计算使用v8编译器在JavaScript程序中生成的隐藏类的总数?或使用v8编译器用于所有生成的隐藏类的内存?还有其他办法吗?

1 个答案:

答案 0 :(得分:2)

您是否需要唯一隐藏类的数量?

据我所知,V8源中的“隐藏类”被称为“地图”。 V8中的每个堆对象都有一个指向地图(或位编码的地图id)的指针,它占用1个字的内存(参见v8/src/objects.h,grep表示Map,map_word)。

对你来说最有帮助的是v8的--trace_maps选项。然后,如果带有此选项的v8没有为您提供足够的信息,您可以看到它在源中的位置并根据您的喜好进行检测。

(Disclamer:我在V8团队中,所以我可能会犯错。虽然我已经在v8上攻击很长时间了。)