Skip to content

Выступление Ларса Бака (кратко)

19/01/2010

Пока не забыл, сгружу сюда основные мысли по поводу содержания конференции:

  • JavaScript компилируется куда ближе к ассемблеру, чем я думал
  • Именованные свойства и свойства по индексу хранятся в разных местах, для ускорения итерации (хотя спецификация ECMAScript не делает между ними разницы)
  • Свойства объектов вообще хранятся двумя способами: small int хранятся сразу по адресу, для остального младший бит устанавливается в 1 и хранится адрес. Память используется областями по 32 бита.
  • Несмотря на прототипическую организацию языка 90% кода написано с использованием одних наборов «общих структур». V8 преобразует их в скрытые классы наподобие тех что в JVM
  • Объекты, не попадающие в эти 90%, а также изменённые (например, удалено свойство) обрабатываются обычным кодом с хеш-массивами. Удаление свойствиз объекта в этом случае негативно сказывается на производительности.
  • Набор скрытых классов вообще строится довольно интересным образом. Это заслуживает отдельного поста.
  • Многопоточность реализовывать пока не планируется, это потребует слишком сильной переделки существующего кода (fine-grained locking)

Потом напишу подробнее по некоторым пунктам.

Advertisements
Добавить комментарий

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: