有沒有人很好地理解/解釋瞭如何使用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個字節。