Браузърът Mozilla Firefox вече се компилира с Clang+LTO. Голям прираст в бързодействието при Linux

0
34
Наличен е Mozilla Firefox за Windows 10 on ARM

Малко след като копията за Windows на интернет браузъра Mozilla Firefox преминаха към Clang-cl компилатора с PGO (Profile Guided Optimizations) и LTO (Link Time Optimizations), сега разработчиците съобщават, че в следващите nightly билдове всички платформи от първо ниво (tier-1) ще се компилират с Clang и разрешен LTO при Linux, Mac, Android arm, aarch64 и x86.

Към момента Mac и Android билдовете вече са използвали Clang, така че при тях като новост идва само разрешаването на LTO, което води до повишаване на производителността и бързината, а само билдовете за Linux получават и разрешен PGO. Разработчиците съобщават обаче, че при Linux прирастът в бързодействието е най-впечатляващ при проведените Talos тестове, където константно получават подобрение от над 5% и до 18% в сравнение с GCC 6.4 и PGO.

В момента Clang пакетът, който използват разработчиците е базиран на LLVM6, но когато се премине към LLVM/Clang 7.0 те очакват повишение от допълнителни от 2 до 5%. Те са опитали и с преминаване към GCC 8.x с използването на LTO, но са се натъкнали на множество проблеми, а преминаването към GCC 7.x е нарушило съвместимостта на бинарните файлове с някои стари системи. Освен това са били налични проблеми и с тестовата платформа.

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

Встрани от повишаването на бързодействието Firefox за Linux вече се компилират като Position Independent Executables (PIE), което подобрява Address Space Layout Randomization и е необходимо за LTO, защото Clang не компилира Position Independent код, който не е PIE. За сметка на това GCC го прави, но, както споменахме по-горе, той няма да бъде използван поради различни проблеми.

Прочетете още:  openSUSE Tumbleweed получи много нови ъпдейти

Повече подробности можете да получите от официалния блог пост.

0/5 (0 Reviews)