有没有人很好地理解/解释了如何使用Chrome(V8)在JavaScript中确定字符串的堆大小?了解Javascript/V8中的字符串堆大小
的我在堆转储看到一些例子:
1)相同的2个字符串的多个拷贝(即“DT”)具有不同@
对象ID的所有指定为OneByteStrings。 heapdump说每个副本都有一个浅的保留大小为32字节的&。目前还不清楚两个字节的字符串是如何保留大小为32以及为什么字符串不会被屏蔽的。
2)长度为78个字符的长对象路径字符串。所有字符都是utf8中的单个字节。它被分类为一个InternalizedString。它有一个184字节的保留大小。即使使用2字节的字符编码,仍然不会考虑剩余的28个字节。为什么这些路径占用太多空间?我可以想象另外4个字节(可能是8个)用于地址,另外4个字节用于存储字符串长度,但即使采用2字节字符编码,仍然会留下16个字节。