Chrome 91 предлага до 23% по-бърза производителност благодарение на тези промени

Google наскоро пусна Chrome 91 в стабилния канал и предлага 23% по-бърза производителност поради промените, споменати в публикацията.

Google наскоро пуснат Chrome 91 на стабилен канал. Актуализацията въведе множество промени, включително преработени контроли за формуляри, поддръжка на десктоп режим по подразбиране на устройства с голям екран, подобрения на API за достъп до файловата система и др. Актуализацията дойде и с множество подобрения в производителността и Google сега разкри, че последната актуализация прави Chrome до 23% по-бърз от предишната версия.

В скорошна публикация на Chromium блог, продуктовият мениджър на Chrome Томас Натестад разкри, че Chrome 91 "сега е до 23% по-бърз с пускането на a нов компилатор на Sparkplug и кратки вградени разговори, спестявайки повече от 17 години процесорно време на нашите потребители всеки ден!" Публикацията обяснява, че Sparkplug е нов JavaScript компилатор, който "запълва празнината между необходимостта да започнете да изпълнявате бързо и оптимизирането на кода за максимална производителност."

Кратките вградени разговори, от друга страна, оптимизират "където в паметта поставяме генериран код, за да избегнем непреки скокове при извикване на функции."

Машината V8 на Chrome разполага с множество компилатори, които правят различни компромиси през различните фази на изпълнение на JavaScript. Новият компилатор Sparkplug постига баланс между двустепенната компилираща система на двигателя - запалване и турбовентилатор -- за генериране на собствен машинен код, без да зависи от информацията, събрана по време на изпълнение на JavaScript код. Поради това, то "започва да се изпълнява бързо, докато все още генерира относително бърз код," като по този начин подобрява производителността.

Short builtins е нов механизъм, който помага на двигателя V8 да оптимизира местоположението в паметта на генерирания код. „Когато V8 генерира специфичен за процесора код от JavaScript, той поставя този код в паметта. Този генериран код често ще извиква вградени функции, които са малки фрагменти от код за обработка на общи процедури --всичко от основни операции като добавяне на две променливи до пълноценни функции в стандарта на JavaScript библиотека. За някои процесори извикването на функции, които са по-далеч от вашия генериран код, може да доведе до неуспех на вътрешните оптимизации на процесора (като логика за предсказване на разклонения). Решението за това е да копирате вградените функции в същата област на паметта като генерирания код," публикацията добавя. Освен това се отбелязва, че тази промяна трябва да подобри производителността на Chrome върху чипа Apple M1.

За да научите повече за тези подобрения на производителността, разгледайте Chrome V8 публикация в блога.