В Chromium добавили две новые технологии ускорения работы с Javascript

Уже достаточно давно разработчики из Chromium ничего не рассказывали о том, как они ускоряют работу браузера. Напомним, что в 2008 году Хром позиционировался не только как максимально простой браузер, но и как самый быстрый. С тех пор многое изменилось. Firefox и Internet Explorer подтянулись,  Opera перешла на Chromium. Основные современные браузеры уже почти не уступают друг другу, соревнуясь на уровне процентов. Но команда Chromium все же старается ускорить то, что еще можно. Например, сегодня мы расскажем про две новые технологии, которые ускоряют работу с Javascript в версиях 41 и 42.

Ускорение работы с Javascript

Script streaming

Раньше работа с js-скриптами (которые используются практически в каждом посещаемом вами сайте) представляла из себя цепочку из нескольких процессов. Прежде всего, браузер загружал скрипт из сети. После полной загрузки он приступал к анализу (разбор, парсинг - называйте как хотите) скриптов, их компиляции и запуску. На каждом этапе затрачивается время. Обычно это миллисекунды, но если веб-приложение достаточно сложное, то ожидание может затянуться.

В Chromium 41 разработчики придумали поместить этап анализа в параллельный поток так, чтобы браузер мог начать разбираться в скрипте еще до его полной загрузки из сети. В ряде случаев это позволило ускорить открытие страниц на 10%. Эффект особенно заметен при больших скриптах или медленном соединении.

Code caching

Как вы могли уже догадаться, вторая оптимизация затрагивает кэширование скомпилированного кода. Если пользователь часто открывает одну и ту же страницу со скриптами, то логично где-то сохранить уже готовый для запуска код и тем самым пропустить первые три этапа при повторном открытии.

Собственно это и было сделано в  Chromium 42. Согласно данным разработчиков, этот метод позволил сэкономить до 40% времени, затрачиваемого на процесс компиляции. Причем это позволило получить выигрыш не только в скорости, но и в потреблении аккумулятора мобильного устройства.