如何计算使用v8编译器在JavaScript程序中生成的隐藏类的总数?或使用v8编译器用于所有生成的隐藏类的内存?还有其他办法吗?
答案 0 :(得分:2)
您是否需要唯一隐藏类的数量?
据我所知,V8源中的“隐藏类”被称为“地图”。 V8中的每个堆对象都有一个指向地图(或位编码的地图id)的指针,它占用1个字的内存(参见v8/src/objects.h
,grep表示Map,map_word)。
对你来说最有帮助的是v8的--trace_maps
选项。然后,如果带有此选项的v8没有为您提供足够的信息,您可以看到它在源中的位置并根据您的喜好进行检测。
(Disclamer:我在V8团队中不,所以我可能会犯错。虽然我已经在v8上攻击很长时间了。)