Ответ 1
Я пойду немного по-другому.
2) Что будет выглядеть массив хэшей таблицы Dictionary Elements
?
Объект JavaScript представляет собой карту из строки в значения. например.
var obj = {
"name": "Sherlock Holmes",
"address": "221B Baker Street"
}
V8 использует хеш-таблицы для представления объектов, не используя оптимизированное представление для особых случаев. Это очень похоже на использование словаря (слова, значение).
Теперь этот доступ к хэш-таблице медленный, потому что изначально все ключи и значения в хэш-таблице undefined
. При вставке новой пары вычисляется хеш, и пара вставлена в индекс вставки. Если в этом индексе уже есть ключ, попытайтесь вставить его в следующий и т.д.
1) Что будет выглядеть Fast Elements
Линейный массив хранения?
В V8 a element
является свойством , ключ которого является неотрицательным целым числом (0, 1, 2,...), т.е. простым линейным массивом, свойства которого можно получить через числовой индекс.
Быстрые элементы хранятся в непрерывном массиве. например.
var arr = [1, 2, 3];
Это особый случай, который оптимизирован для более быстрого доступа, поскольку индекс уже известен и не вычисляется.
3) Для целей профилактики, как бы я flip from one type to another
?
Для быстрого элемента, если вы назначаете индекс таким образом за конец массива элементов, V8 может понизить элементы до словарного режима.
Ссылка: http://jayconrod.com/posts/52/a-tour-of-v8-object-representation