Mozilla впроваджує нові покращення продуктивності Firefox, цього разу зосередившись на виконанні WebAssembly у браузері. Деякі завдання обробки тепер виконуються у Firefox більш ніж у 75 разів швидше.
Деякі більш просунуті веб-програми та ігри використовують код, який компілюється в WebAssembly, замість коду, написаного або скомпільованого в JavaScript. WebAssembly в основному використовується для складних інструментів рендерингу відео, аудіо та 3D, таких як веб-версії Adobe Photoshop, SketchUp, Google Earth, Figma та ігор, створених за допомогою Unity. Однак Firefox має деякі проблеми з продуктивністю при компіляції коду WebAssembly, що може сповільнити швидкість відгуку і початковий час завантаження веб-додатків, які використовують його.
У блозі розробників SpiderMonkey від Mozilla пояснюється:
«Коли компіляція Baseline завершена, ми компілюємо модуль Wasm за допомогою нашого більш досконалого компілятора Ion. Цей бекенд створює швидший машинний код, але час компіляції набагато більший. Проблема з модулем ONNX полягала в тому, що компіляція компілятора Ion займала багато часу і використовувала багато пам’яті для компіляції. На моїй машині Linux x64 компіляція цього модуля за допомогою Ion зайняла близько 5 хвилин і використала понад 4 ГБ пам’яті. Навіть незважаючи на те, що ця робота відбувається у фонових потоках, це все одно було занадто багато».
Інженери Mozilla змогли оновити розподільник регістрів для компонента Ion у Firefox більш ефективним векторним методом, що прискорило час компіляції приблизно в 20 разів, а також оновили інші компоненти компілятора з іншими алгоритмами. У блозі йдеться: «Завдяки цим змінам Ion може компілювати модуль ONNX Wasm менш ніж за 3,9 секунди на моїй машині, що більш ніж у 75 разів швидше, ніж до цих змін».
В результаті Photoshop, Google Earth та інші веб-додатки та ігри, що використовують WebAssembly, мають завантажуватися швидше у Firefox. Весь веб-додаток не отримає прискорення «до 75 разів», але певні операції в ньому будуть виконуватися швидше. Mozilla заявляє, що один з великих модулів WebAssembly, який використовується в безкоштовній онлайн-демонстрації Photoshop, тепер компілюється у Firefox за 14 секунд замість чотирьох хвилин, а один тест у веб-тесті JetStream 2 тепер завершується за 0,2 секунди замість 2,8 секунди.
Mozilla працює над іншими вдосконаленнями WebAssembly у Firefox, тож складні веб-додатки повинні продовжувати вдосконалюватися з часом. Це, безумовно, приємно бачити, на додаток до інших поліпшень зручності використання, таких як локальний переклад. або оновлення функції скріншотів.