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

Упорядочивание в V8

· 16 мин. чтения
Саймон Цюнд ([@nimODota](https://twitter.com/nimODota)), согласованный компаратор

Array.prototype.sort был одним из последних встроенных методов, реализованных на JavaScript с самохостингом в V8. Его портирование предоставило нам возможность экспериментировать с различными алгоритмами и стратегиями реализации, а затем наконец сделать его стабильным в V8 v7.0 / Chrome 70.

Улучшение производительности `DataView` в V8

· 8 мин. чтения
Тэотим Гроенс, <i lang="fr">учёный Data-Vue</i>, и Бенедикт Мойрер ([@bmeurer](https://twitter.com/bmeurer)), профессиональный специалист по производительности

DataViews — это один из двух возможных способов низкоуровневого доступа к памяти в JavaScript, другой способ — TypedArrays. До сегодняшнего дня DataViews были гораздо менее оптимизированы, чем TypedArrays в V8, что приводило к снижению производительности при выполнении задач, таких как графически интенсивные рабочие нагрузки или при декодировании/кодировании бинарных данных. Причины этого в основном исторические, например, тот факт, что asm.js выбрал TypedArrays вместо DataViews, что стимулировало движки сосредоточиться на производительности TypedArray.

Празднование 10-летия V8

· 12 мин. чтения
Mathias Bynens ([@mathias](https://twitter.com/mathias)), историк V8

В этом месяце отмечается десятилетие не только выпуска Google Chrome, но и проекта V8. В этом посте представлен обзор основных этапов проекта V8 за последние 10 лет, а также за годы до этого, когда проект был ещё секретным.

Liftoff: новый базовый компилятор для WebAssembly в V8

· 13 мин. чтения
Клеменс Бакес, мастер компиляции WebAssembly

V8 v6.9 включает Liftoff, новый базовый компилятор для WebAssembly. Liftoff теперь включён по умолчанию на настольных системах. В этой статье рассмотрены причины добавления ещё одного уровня компиляции, а также описаны реализация и производительность Liftoff.

Встроенные функции

· 10 мин. чтения
Якоб Грубер ([@schuay](https://twitter.com/schuay))

Встроенные функции V8 (builtins) потребляют память в каждом экземпляре V8. Число встроенных функций, средний размер и количество экземпляров V8 на вкладке браузера Chrome значительно выросли. В этом посте мы расскажем, как смогли уменьшить медианный размер кучи V8 на сайте на 19% за последний год.

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

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

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

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

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

Каждые шесть недель мы создаем новую ветку V8 в рамках нашего процесса выпуска. Каждая версия отделяется от главной ветки Git V8 непосредственно перед бета-версией Chrome. Сегодня мы рады объявить о создании новой ветки V8 версии 6.8, которая находится в бета-версии до выпуска совместно с Chrome 68 Stable через несколько недель. В V8 v6.8 множество различных улучшений для разработчиков. В этом посте представлена подборка ключевых моментов в преддверии релиза.

Параллельная маркировка в V8

· 11 мин. чтения
Улан Дегенбаев, Михаэль Липпаутц и Ханнес Пайер — освободители главного потока

Этот пост описывает технику сборки мусора, называемую параллельной маркировкой. Оптимизация позволяет JavaScript-приложению продолжать выполнение, пока сборщик мусора сканирует кучу для нахождения и маркировки живых объектов. Наши тесты показывают, что параллельная маркировка сокращает время, затрачиваемое на маркировку в главном потоке, на 60%–70%. Параллельная маркировка является последним элементом проекта Orinoco — проекта по постепенной замене старого сборщика мусора новым, в основном параллельным и многопоточным сборщиком мусора. Параллельная маркировка включена по умолчанию в Chrome 64 и Node.js v10.

Релиз V8 версии v6.7

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

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

Добавление BigInts в V8

· 8 мин. чтения
Якоб Куммеров, арбитр точности

За последние несколько месяцев мы внедрили поддержку BigInts в V8, как это указано в данном предложении, чтобы включить их в будущую версию ECMAScript. В следующей публикации рассказывается история наших приключений.