Chrome на устройствах высокого класса для Android теперь оптимизирован для скорости, а не для размера

На протяжении многих лет Google стремился ускорить работу Chrome, и последние улучшения скорости сосредоточены на Android и Mac.

На Android Chrome должен работать на многих типах устройств с различными техническими характеристиками, при этом Google ранее оптимизировал его для небольшого размера приложения. Теперь Google повышает производительность, ориентируясь на устройства высокого класса «с версией Chrome, использующей флаги компилятора, настроенные для скорости, а не для размера двоичного файла». Таким образом, Chrome на этих устройствах Android может «запускать бенчмарк Speedometer 2.1 на 30% быстрее».

Speedometer от команды WebKit от Apple является предпочтительным бенчмарком Google, ранее отмечалось, что он «наиболее точно отражает реальный мир» при сравнении производительности JavaScript.

Между тем, в Chrome для Mac ряд улучшений и оптимизаций привел к 10%-ному увеличению Speedometer 2.1 за три месяца:

  • Мы обнаружили некоторые целенаправленные оптимизации для часто используемых функций JS `Object.prototype.toString` и `Array.prototype.join`. Мы также внедрили целенаправленные улучшения в CSS InterpolableColor.
  • `innerHTML` — это очень распространенный способ обновления DOM через JavaScript, поэтому мы добавили специализированные быстрые пути для парсинга.
  • Сжатие указателей используется для экономии памяти как в V8, так и в Oilpan (сборщик мусора для объектов DOM). Мы оптимизировали, как мы сжимаем и распаковываем указатели, и избегаем сжатия полей с высоким трафиком. Учитывая, как часто выполняются эти операции, это оказывает широкомасштабное влияние на производительность. Мы также переместили часто используемые объекты, такие как JavaScript `undefined`, в начало памяти, что позволяет получать к ним доступ с использованием более быстрого машинного кода.

Подробнее о Chrome: