Интеллектуальное планирование задач в Blink

Пользователи мечтают не только о быстрой загрузке страниц, но и том, чтобы браузер оперативно и плавно реагировал на их действия (клики, прокрутка). В Chromium была внедрена технология, которая помогает решить эту задачу и добиться более плавной работы всего браузера.

Планировщик задач в Хроме 41

Чтобы анимация выглядела плавной, графическое ядро браузера должно выдавать порядка 60 кадров в секунду (как GTA5 на идеальном компьютере). При этом Хром занимается не только тем, что отрисовывает картинки, но и многими другими задачами, которые точно так же отнимают ресурсы у процессора. Исторически Chromium обрабатывает все свои задачи (анимация графики, реакция на действия пользователя, высвобождение памяти и все остальное) последовательно и исключительно в том порядке, в котором они возникали. Это примерно, как вы приходите в Сбербанк, а там работает только одно окно, и нужно взять талончик, чтобы отстоять электронную очередь. Даже если вам нужно только спросить (конечно же, только что-то срочное), вас все равно не пустят. Вот и в Хроме все было как в Сбербанке. Поэтому браузер мог с задержкой реагировать, например, на прокрутку страниц.

Вот почему в движок Blink внедрили интеллектуальный планировщик задач. Если продолжить аналогию с банком, то это такой шустрый менеджер, который бегает между людьми в очереди, узнает, по какому они собственно вопросу, и переставляет шокированных пенсионеров так, чтобы наиболее срочные задачи были в начале очереди. В браузере это приводит к тому, что анимация и реакция на клики будут обрабатываться в первую очередь, а очистка памяти и прочие несрочные задачи уходят в конец. Говорят, что это может повысить отзывчивость браузера до 40%.

scheduler2

Вот вам видео для сравнения:

Кстати, эта штука работает еще с Google Chrome 41, т.е. достаточно давно. Заметили разницу?

P.S. Напоминаем, что в Chrome 41/42 была и другая оптимизация, которая напрямую касалась скорости загрузки и отрисовки страниц.