Pull to refresh

Производительность Firefox и Chrome на 150 открытых вкладках

Reading time2 min
Views38K
Некоторые power-юзеры начинают день с дефолтного конфига в 40-50 открытых вкладок. В течение дня к этой группе может прибавиться ещё пару десятков, а то и сотня. Хотя это крайне нестандартный поведенческий паттерн, но некоторые именно так и работают. Любопытно посмотреть, как ведут себя браузеры в подобной нештатной ситуации. Один из разработчиков Firefox, аспирант Грегор Вагнер, решил провести тесты на последних сборках Chrome и Firefox.

Вагнер разрабатывает различные стратегии распределения памяти для Firefox. В последних версиях Firefox разработчики значительно оптимизировали браузер в этом отношении.

150 сайтов взяты из списка самых популярных сайтов. Хабрахабр туда не вошёл, потому что занимает лишь 462-е место в мире по популярности.

Скрипт MemBench открывал по одной новой вкладке каждые 1,5 секунды. По достижении лимита в 150 вкладок он ждал 90 секунд, пока все страницы не загрузятся, и выводил текстовое сообщение об окончании теста. Тестовая машина: Dual-Core MacBook Pro с 8 ГБ RAM.

Для последнего билда Firefox Nightly (Firefox 8) получены следующие результаты:

real 6 мин 14,406 с
user 3 мин 55,302 с
sys 0 мин 49,366 с

Вот что показал canary-билд Chrome:

real 28 мин 55,573 с
user 21 мин 58,383 с
sys 14 мин 40,860 с

Как видим, разница просто огромная. Оказалось, что Chrome начинает с большим трудом открывать новые вкладки примерно после 70-й. На 150 сайтах Грегор даже не мог нормально скролить страничку. Firefox, в свою очередь, вёл себя вполне нормально, как будто и нет других открытых табов.

В чём же причина? Дело в том, что Firefox использует модель «один процесс — много ветвлений» (PDF), так что все 150 вкладок укладываются в 27 тредов и 2,02 ГБ RAM.

В Chrome используется противоположный подход, в котором задачи разбиваются по нескольким процессам. В результате процесс Google Chrome Renderer постоянно использует 100% CPU и занял 1,5 ГБ на 150 вкладках. Основной процесс Google Chrome использует 212 тредов и 1,3 ГБ. Есть ещё дополнительный процесс Helper с 200 МБ.

Вот результат выполнения бенчмарка V8 в Firefox на полной загрузке всех 150 страниц.

Firefox Score: 3954
Richards: 8014
DeltaBlue: 4149
Crypto: 8781
RayTrace: 3007
EarleyBoyer: 3112
RegExp: 959
Splay: 5764

Сравните с результатом при одной открытой вкладке:

Firefox Score: 5125
Richards: 7925
DeltaBlue: 5005
Crypto: 8791
RayTrace: 3976
EarleyBoyer: 5003
RegExp: 2188
Splay: 6120

Попытка запустить тест V8 на Chrome не удалась: браузер остановил рендеринг, процесс Google Chrome не опускался ниже 100% CPU.

Вывод от Грегора Вагнера: если вам нужно много вкладок, используйте Firefox! (Пользователи Opera могут не согласиться с таким выводом, говорят, этот браузер на удивление хорошо работает с большим количеством вкладок)
Tags:
Hubs:
+64
Comments205

Articles

Change theme settings