Перейти к основному содержимому

34 записи с тегом "internals"

Посмотреть все теги

Пользовательские снимки начальной загрузки

· 3 мин. чтения
Yang Guo ([@hashseed](https://twitter.com/hashseed)), инженер-программист и поставщик предварительного нагрева двигателя

Спецификация JavaScript включает в себя много встроенного функционала, от математических функций до полноценного движка регулярных выражений. Каждый вновь создаваемый контекст V8 имеет эти функции доступными с самого начала. Чтобы это работало, глобальный объект (например, объект window в браузере) и весь встроенный функционал должны быть настроены и инициализированы в куче V8 в момент создания контекста. На это требуется значительное время, если делать все с нуля.

Получение сборки мусора бесплатно

· 8 мин. чтения
Ханнес Пайер и Росс МакИлрой, Idle Garbage Collectors

Производительность JavaScript продолжает оставаться одним из ключевых аспектов ценностей Chrome, особенно когда речь идет о обеспечении плавного взаимодействия. Начиная с Chrome 41, V8 использует новую технику для повышения отзывчивости веб-приложений, скрывая дорогостоящие операции управления памятью внутри небольших, иначе неиспользуемых промежутков времени простоя. В результате веб-разработчики могут ожидать более плавную прокрутку и идеальные анимации с значительно уменьшенными заиканиями из-за сборки мусора.

Кэширование кода

· 2 мин. чтения
Ян Гуо ([@hashseed](https://twitter.com/hashseed)), инженер-программист

V8 использует компиляцию во время исполнения (JIT) для выполнения JavaScript-кода. Это означает, что перед непосредственным выполнением скрипта его необходимо разобрать и скомпилировать, что может вызвать значительные накладные расходы. Как мы сообщали недавно, кэширование кода — это техника, которая уменьшает эти затраты. Когда сценарий компилируется впервые, создаются и сохраняются данные кэша. В следующий раз, когда V8 нужно будет снова скомпилировать этот же сценарий, даже в другой экземпляр V8, он сможет использовать данные кэша для воспроизведения результата компиляции вместо того, чтобы компилировать заново. В результате сценарий выполняется намного быстрее.