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

Дополнения V8

· 6 мин. чтения
Доменик Деникола ([@domenic](https://twitter.com/domenic)), мастер потоков

V8 реализует большую часть встроенных объектов и функций языка JavaScript непосредственно в самом JavaScript. Например, наша реализация промисов написана на JavaScript. Такие встроенные функции называются автономными. Эти реализации включены в наш снимок при загрузке, чтобы новые контексты можно было быстро создавать без необходимости настройки и инициализации автономных встроенных функций во время выполнения.

Релиз V8 версии 4.9

· 5 мин. чтения
команда V8

Примерно каждые шесть недель мы создаём новую ветку V8 в рамках нашего процесса релизов. Каждая версия разветвляется от основной ветки Git V8 незадолго до разветвления Chrome для создания Chrome Beta. Сегодня мы рады объявить о нашей новой ветке, V8 версия 4.9, которая будет находиться в бета-версии до её выпуска совместно с Chrome 49 Stable. V8 4.9 наполнен различными нововведениями для разработчиков, поэтому мы хотим дать вам предварительный обзор некоторых из них, ожидая релиза через несколько недель.

Есть `Math.random()`, а затем есть `Math.random()`

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

Math.random() возвращает значение Number с положительным знаком, большее или равное 0, но меньшее 1, выбираемое случайным или псевдослучайным образом с приблизительно равномерным распределением в этом диапазоне, используя алгоритм или стратегию, зависящие от реализации. Эта функция не принимает аргументов.

Релиз V8 версии v4.8

· 2 мин. чтения
команда V8

Примерно каждые шесть недель мы создаем новую ветку V8 в рамках процесса выпуска. Каждая версия создается из основной ветки Git V8 непосредственно перед созданием ветки Chrome для этапа Beta. Сегодня мы рады объявить нашу новую ветку, V8 версии 4.8, которая будет находиться в состоянии Beta до момента выпуска в координации с Chrome 48 Stable. V8 4.8 содержит ряд функций, ориентированных на разработчиков, поэтому мы хотим предоставить вам предварительный обзор некоторых основных моментов в ожидании выпуска через несколько недель.

Истребители лагов. Часть первая

· 4 мин. чтения
Истребители лагов: Йохен Айзингер, Михаэль Липпаутц и Ханнес Пэйер

Лаги, или, другими словами, заметные задержки, могут быть обнаружены, когда Chrome не удаётся отобразить кадр за 16.66 мс (нарушая движение в 60 кадров в секунду). На сегодняшний день большая часть работы V8 по сборке мусора выполняется в основном потоке рендеринга, см. Рисунок 1, что часто приводит к лагам, когда необходимо обрабатывать слишком много объектов. Устранение лагов всегда было важным приоритетом для команды V8 (1, 2, 3). В этой статье обсуждаются некоторые оптимизации, которые были реализованы между Chrome 41 и Chrome 46 и значительно сокращают паузы при сборке мусора, обеспечивая более качественный пользовательский опыт.

Релиз V8 v4.7

· 2 мин. чтения
команда V8

Примерно каждые шесть недель мы создаем новую ветку V8 в рамках нашего процесса выпуска. Каждая версия ответвляется от основной ветки Git в V8 перед созданием соответствующей версии Chrome Beta. Сегодня мы рады объявить о нашей новой ветке, версии V8 4.7, которая будет в стадии бета-тестирования, пока не выйдет вместе со стабильной версией Chrome 47. V8 v4.7 предлагает множество приятных возможностей для разработчиков, и мы хотели бы заранее рассказать об основных из них в ожидании официального выпуска через несколько недель.

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

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

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

Релиз V8 версии v4.6

· 4 мин. чтения
команда V8

Примерно каждые шесть недель мы создаем новую ветку V8 в рамках нашего процесса релиза. Каждая версия ответвляется от основной ветки Git V8 немедленно перед ответвлением Chrome для бета-версии Chrome. Сегодня мы рады объявить о создании нашей новой ветки, версии V8 4.6, которая будет в бета-версии до ее выпуска в стабильной версии Chrome 46. V8 4.6 включает множество нововведений для разработчиков, и мы хотим представить некоторые из основных моментов в ожидании релиза через несколько недель.

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

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

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

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

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

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