Преди почти една година се случи знаково събитие: за първи път в историята Firefox надмина Chrome по скорост на работа.
Много хора си спомнят, че още от излизането си през 2008 г. Chrome беше известен с високата си производителност, докато Firefox изглеждаше тежък и страдаше от изтичане на памет. Но постепенно Mozilla коригира ситуацията, така че през 2023 г. браузърите окончателно размениха местата си.

Единствено съмнение може да предизвика обективността на тези тестове, в края на краищата Speedometer 2.0 е доста стар набор от 2018 г. Може би той не е на ниво с днешната уголемена Глобална мрежа? Е, сега новата версия на Speedometer 3.0 видя бял свят, така че нека да разгледаме една по-надеждна и обективна картина: кой браузър всъщност е по-бърз?
Браузърните бенчмаркове

Бенчмарковете за браузъри оценяват производителността на браузъра при изпълнение на предварително зададен списък със задачи. По правило тестовете са достъпни онлайн на официалния уебсайт, откъдето се изтеглят съответните библиотеки и се изпълняват в клиентския браузър. По този начин всеки потребител може да стартира тестовете на конкретен компютър със собствена конфигурация и да види кой браузър работи по-бързо лично за него.
Типичните задачи за тестване включват рендиране и анимация, DOM трансформации, операции със стрингове, математически изчисления, алгоритми за сортиране, тестове за графична производителност и инструкции за паметта.

Трябва да се отбележи, че някои тестове имат за цел да проверят не само производителността, но и съвместимостта. Така например популярният тест Acid3 проверява и съответствието на браузъра с уеб стандартите.
Бенчмаркът Speedometer е проект с отворен код, разработен с участието на разработчици на браузърни енджини от Apple, Google, Mozilla и стотици независими разработчици.
Целта на Speedometer е да отразява възможно най-точно реалната производителност на браузъра в реалния уеб. За тази цел той тества целия път на потребителя, а не отделни функции в тесен цикъл. При всеки тест се разработва пълният набор от действия, необходими на енджина за изпълнение на определена задача.
Първоначално Speedometer 1.0 е разработен от групата WebKit на Apple за вътрешна употреба. През 2014 г. тя го пуска в публичното пространство. През 2018 г. се появи втора версия. Тестът симулира действията на потребителя със списък със задачи, като използва няколко примера в TodoMVC:

Всеки пример реализира едно и също приложение, като използва API DOM по различен начин. Някои от тях извикват DOM API директно от ECMAScript 5 (ES5), ECMASCript 2015 (ES6), ES6, транспониран в ES5, и Elm, транспониран в ES5. Други използват един от единадесетте популярни JavaScript фреймуърка, които де факто се използват в най-популярните сайтове в интернет. Изпълнението на тези операции зависи от скоростта на API на DOM, енджина на JavaScript, разрешаването на стиловете CSS, оформлението и др.
Speedometer 3.0
През изминалите десет години Speedometer се превърна в ключов инструмент за оптимизиране работата на браузърите.
За да се отрази по-добре реалността на съвременния интернет, в третата версия са добавени няколко нови теста:
- Рендиране на canvas и SVG диаграми (Charts-observable-plot, Charts-chartjs, React-Stockcharts-SVG, Perf-Dashboard);

- Редактиране на код (CodeMirror);
- WYSIWYG-редактиране (TipTap);

- Рендиране на новинарски сайтове, SPA (Next.js и Nuxt.js).
Тестовете на TodoMVC също са подобрени: кодът е актуализиран, за да се адаптира към най-разпространените версии на най-популярните фреймуъркове въз основа на данни от HTTP Archive. Включени са следните фреймуърки и библиотеки: Angular, Backbone, jQuery, Lit, Preact, React, React+Redux, Svelte и Vue. Както и ванилови реализации на JavaScript, насочени към ES5 и ES6, и версия на Web Components. Пълния списък:
- TodoMVC-JavaScript-ES5;
- TodoMVC-JavaScript-ES6-Webpack-Complex-DOM;
- TodoMVC-WebComponents;
- TodoMVC-React-Complex-DOM;
- TodoMVC-React-Redux;
- TodoMVC-Backbone;
- TodoMVC-Angular-Complex-DOM;
- TodoMVC-Vue;
- TodoMVC-jQuery;
- TodoMVC-Preact-Complex-DOM;
- TodoMVC-Svelte-Complex-DOM;
- TodoMVC-Lit-Complex-DOM.
Разработчиците са въвели по-сложни версии на тези тестове, които са вградени в по-голямо DOM дърво с много сложни CSS правила. Това в много по-голяма степен наподобява теглото и структурата на страниците в съвременните популярни уеб приложения. За да се разбере, ето какъв е размерът на DOM дървото на някои популярни сайтове към днешен ден:
| Уеб-страница | Размер на DOM | Максимална дълбочина |
|---|---|---|
| amazon.com | 3746 | 22 |
| youtube.com | 9082 | 30 |
| Емисия на Google | 3458 | 48 |
| reddit.com | 4460 | 21 |
| Статия в MDN Promises | 4167 | 17 |
| walmart.com | 3382 | 25 |
| Facebook (след скролване) | 9957 | 63 |
| Gmail (отворено писмо) | 3494 | 69 |
| HBO Max | 5478 | 19 |
| Airbnb.com (след авторизация и използването на филтри) | 3388 | 38 |
| Adobe Photoshop (панелът Quick Actions) | 6751 | ≥ 24 |
| Adobe Photoshop (новият Text Box) | 6331 | ≥ 31 |
| bbc.com/news/world | 3898 | 26 |
| nationalgeographic.com | 4111 | 23 |
| Google Docs | 3558 | 15 |
| Google Sheets | 5730 | 18 |
| Пост в StackOverflow | 2521 | 19 |
| Microsoft Outlook | 2870 | 32 |
| Microsoft Teams | 2542 | 32 |
| apple.com/apple-vision-pro | 2857 | 18 |
| 2488 | 59 |
Като цяло новият бенчмарк дава по-пълна и обективна оценка на работата на енджина.
За първи път Speedometer е разработен в междуотраслово сътрудничество с подкрепата на всички основни браузърни енджини: Blink/V8, Gecko/SpiderMonkey и WebKit/JavaScriptCore, с участието на стотици независими разработчици. Той е изграден в съответствие с нов консенсусен модел на управление и се съхранява в отворено хранилище.
В допълнение към бенчмарковете е подобрена и програмата за провеждане на тестове. Изпълнителят вече измерва повече различни показатели за производителността на браузъра в отговор на действията на потребителя, като например рисуване и асинхронни задачи.
Как беше
Speedometer 2.0 измерва синхронното стартиране на тестовия скрипт като „синхронно“ време, а всяка допълнителна работа преди задействането на нулевия (0 секунди) таймер – като „асинхронно“ време.

При това обаче се пропуска част от работата, която браузърите трябва да извършват, за да актуализират изобразяването на дадена уеб страница. Следващата диаграма показва колко много работа може да бъде пропусната:

Как стана
В Speedometer 3.0 тази пропусната досега работа по рендирането може да бъде измерена, което отразява картината по-обективно, пишат разработчиците. Сега тестовият скрипт вътре в обратната връзка requestAnimationFrame (rAF в диаграмата) се приема за „синхронно“ време, а нулевият таймер във втората обратна връзка requestAnimationFrame се приема за синхронно време. Това асинхронно време гарантирано включва работата на таймерите в самия тест, както и визуализирането на страницата от енджина на браузъра.

По същество Speedometer 3.0 използва факта, че всички браузърни енджини са внедрили модела на цикъла на събитията в HTML5 за визуализиране на обновяванията.
Тези промени значително подобряват точността на бенчмарка и водят до реални подобрения за потребителите.

Има и други подобрения. Инструментариумът за разработчици е усъвършенстван, за да могат инженерите да разбират по-добре резултатите, да създават профили и да персонализират тестовете. Архитектурата за провеждане на тестове е преработена, за да се улесни писането и поддържането на сложни тестови случаи. Освен това е подобрено качеството на кода, като са внедрени съвременни функции, които не бяха широко достъпни при пускането на Speedometer 2.0, като например native promises, async/await, класове и модули.
Резултатите
Резултатите от бенчмарка Speedometer 3.0 показват, че към април 2024 г. Firefox запазва леко предимство по отношение на производителността пред Chrome: 201,54 точки срещу 197,69 точки.

Обективно погледнато, и двата браузъра са много близки. Почти всеки ден с поредната версия лидерът може да се промени.
Сравнителен тест в Speedometer 3.0 на офис компютър с Windows 10 (април 2024 г.), последни версии на всички браузъри:
- Firefox 124.0.2 (64-битова версия) без разширения: 8,87 ± 0,13
- Firefox Nightly 126.0a1 (64-битов) без разширения: 8,79 ± 0,28
- Chrome 123.0.6312.106 (64-битов) с 13 разширения: 7,16 ± 0,38
- 8,17 ± 0,17
- Chrome 123.0.6312.106 (64-битов) без разширения: 8,93 ± 0,17
Ако разгледаме резултатите за последните две години, ще видим, че Firefox и Chrome са показали по-високи резултати. Но най-много е спечелил Firefox.
Подобряването на производителността на Firefox през 2023 г. за реалните потребители е резултат от оптимизацията на енджина за Speedometer 3.0, както и от отстраняването на стотици грешки в JS, DOM, CSS, графичната обработка, фронтенда, разпределението на паметта, оптимизациите на профилите и др.

В резултат на оптимизациите на FCP през годината първият отговор от дадена страница пристига в браузъра 15% по-бързо, отколкото в началото на годината.
Значителното увеличение на производителността при визуализиране на JS се усеща особено много при тежките страници, претоварени със скриптове:

Друг ключов показател: закъснението между натискането на клавиш на клавиатурата и появата на символа на екрана (95-и процентил в графиката):

Общият резултат на компилацията на Firefox Nightly в теста Speedometer се повишаваше през изминалата година:

Mozilla следва цикъл на пускане на нови версии на всеки четири седмици: на 19-ти март 2024 г. излезе Firefox 124 с подобрен редактор на PDF файловете, който вече ви позволява да добавяте текст и картинки (надписи) към PDF файлове направо в браузъра:

Това е най-новата версия до момента, а следващата ще излезе на 16-ти април.
Както вече бе споменато, Firefox е последният безплатен браузър с независим енджин (Gecko). Сега той е единствената алтернатива на монопола на WebKit (Safari) и неговото разклонение Blink (Chrome, Edge, Opera и др.). И е единственият популярен браузър, който не е собственост на голяма корпорация.
Всичко важно от света на технологиите, директно в пощата ти.
С абонирането приемате нашите Условия и Политика за поверителност. Може да се отпишете с един клик по всяко време.
Коментирайте статията в нашите Форуми. За да научите първи най-важното, харесайте страницата ни във Facebook, и ни последвайте в Google Новини, TikTok, Telegram и Viber или изтеглете приложението на Kaldata.com за Android, iPhone, Huawei, Google Chrome, Microsoft Edge и Opera!