Vývojáři Ubuntu se začali zabývat problémy s pomalým spouštěním snap balíčku Firefox.

Společnost Canonical zahájila řešení problémů s výkonem snap balíčku Firefox, který byl ve výchozím nastavení nabídnut v Ubuntu 22.04 místo obvyklého deb balíčku. Hlavním rozčarováním uživatelů je velmi pomalé spuštění Firefoxu. Například na notebooku Dell XPS 13 první spuštění Firefoxu po instalaci zabere 7,6 sekundy, na notebooku Thinkpad X240 – 15 sekund a na desce Raspberry Pi 400 – 38 sekund. Opakovaná spuštění se provádějí již za 0,86, 1,39 a 8,11 sekundy v uvedeném pořadí.

Během analýzy problému byly odhaleny 4 hlavní příčiny pomalého spuštění, kterým se bude věnovat hlavní pozornost:

  • Vysoké náklady na vyhledávání souborů uvnitř zkomprimovaného obrazu squashfs, které jsou zvlášť patrné na slabších systémech. Problém by měl být vyřešen skupinovou organizací obsahu, aby se minimalizovaly operace přesouvání během spuštění.
  • Na Raspberry Pi a systémech s GPU AMD se ukázalo, že velké zpoždění souvisí s selháním při určování grafického ovladače a přechodem na software pro vykreslování s velmi pomalou kompilací shaderů. Oprava pro řešení tohoto problému již byla přidána do snapd.
  • Mnoho času bylo ztraceno při kopírování vestavěných doplňků do uživatelského adresáře. Do snap balíčku bylo zabudováno 98 jazykových balíčků, které se všechny kopírovaly, bez ohledu na zvolený jazyk.
  • Zpoždění také nastávala při určování všech dostupných písem, témat ikon a konfigurací písem.

Při spouštění Firefoxu z snap byly také pozorovány jednotlivé problémy s výkonem během provozu, ale vývojáři Ubuntu již připravili opravy, které zlepšují výkon. Například od verze Firefox 100.0 byly při sestavování zahrnuty optimalizace při fázi spojování (LTO) a na základě výsledků profilování kódu (PGO). Pro řešení problémů s výměnou dat mezi Firefoxem a externími subsystémy byl připraven nový XDG Desktop Portal, jehož podpora je v současné fázi revize pro zařazení do Firefoxu.

Hlavními důvody pro prosazení formátu snap pro prohlížeče je snaha zjednodušit údržbu a sjednotit vývoj pro různé verze Ubuntu – balíček deb vyžaduje samostatnou údržbu pro všechny podporované větve Ubuntu a odpovídající sestavení a testování s ohledem na různé verze systémových komponentů, zatímco balíček snap může být tvořen najednou pro všechny větve Ubuntu. Navíc, navrhovaný snap balíček s Firefoxem v Ubuntu je spravován zaměstnanci Mozilly, což znamená, že je vytvářen z první ruky bez prostředníků. Dodání ve formátu snap také umožnilo urychlit distribuci nových verzí prohlížeče uživatelům Ubuntu a dalo možnost spouštět Firefox v izolovaném prostředí vytvořeném pomocí mechanismu AppArmor pro dodatečnou ochranu zbytku systému před zneužitím zranitelností v prohlížeči.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster