Преди почти една година се случи знаково събитие: за първи

...
Преди почти една година се случи знаково събитие: за първи
Коментари Харесай

Може да не ви се вярва, но Firefox е най-бързият браузър

Преди съвсем една година се случи знаково събитие: за първи път в историята Firefox надмина Chrome по скорост на работа.

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

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

Браузърните бенчмаркове

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

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

Трябва да се означи, че някои проби имат за цел да ревизират освен продуктивността, само че и съвместимостта. Така да вземем за пример известният тест Acid3 ревизира и сходството на браузъра с уеб стандартите.

Бенчмаркът Speedometer е план с отворен код, създаден с присъединяване на разработчици на браузърни енджини от Apple, Гугъл, 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

През миналите 10 години 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.com374622youtube.com908230Емисия на Google345848reddit.com446021Статия в MDN Promises416717walmart.com338225Facebook (след скролване)995763Gmail (отворено писмо)349469HBO Max547819Airbnb.com (след авторизация и потреблението на филтри)338838Adobe Photoshop (панелът Quick Actions)6751≥ 24Adobe Photoshop (новият Text Box)6331≥ 31bbc.com/news/world389826nationalgeographic.com411123Google Docs355815Google Sheets573018Пост в StackOverflow252119Microsoft Outlook287032Microsoft Teams254232apple.com/apple-vision-pro285718Twitter248859

Като цяло новият бенчмарк дава по-пълна и справедлива оценка на работата на енджина.

За първи път 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, графичната обработка, фронтенда, разпределението на паметта, оптимизациите на профилите и други

Медианното време сред стартирането на отговора и приемането на първия байт от мрежата (First Contentful Paint (FCP)) във Firefox през 2023 година

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

Значителното нарастване на продуктивността при визуализиране на JS се усеща изключително доста при тежките страници, претрупани със скриптове:

95-ти процентил на времето за осъществяване на JS на страницата, след оптимизацията на Firefox през 2023 година

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

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

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

Това е най-новата версия досега, а идната ще излезе на 16-ти април.

Както към този момент бе упоменато, Firefox е последният безвъзмезден браузър с самостоятелен енджин (Gecko). Сега той е единствената опция на монопола на WebKit (Safari) и неговото отклонение Blink (Chrome, Edge, Opera и др.). И е единственият известен браузър, който не е благосъстоятелност на огромна корпорация.

Източник: kaldata.com

СПОДЕЛИ СТАТИЯТА


Промоции

КОМЕНТАРИ
НАПИШИ КОМЕНТАР