Das Unternehmen Canonical hat mit der Lösung von Leistungsproblemen des Snap-Pakets von Firefox begonnen, das standardmäßig in Ubuntu 22.04 anstelle des üblichen Deb-Pakets angeboten wurde. Die Hauptbeschwerde der Benutzer bezieht sich auf den sehr langsamen Start von Firefox. Zum Beispiel dauert der erste Start von Firefox nach der Installation auf einem Dell XPS 13 7,6 Sekunden, auf einem Thinkpad X240 15 Sekunden und auf einem Raspberry Pi 400 38 Sekunden. Wiederholte Starts erfolgen bereits in 0,86, 1,39 und 8,11 Sekunden.
Im Rahmen der Analyse des Problems wurden 4 Hauptursachen für den langsamen Start identifiziert, auf deren Lösung ein besonderes Augenmerk gelegt wird:
- Hohe Overheadkosten bei der Suche nach Dateien innerhalb des komprimierten squashfs-Images, die insbesondere auf leistungsschwachen Systemen auffallen. Das Problem soll durch das Gruppieren des Inhalts gelöst werden, um die Bewegungen innerhalb des Images während des Starts zu minimieren.
- Auf Raspberry Pi und Systemen mit AMD-GPU ergaben sich große Verzögerungen aufgrund eines Fehlschlags bei der Erkennung des Grafiktreibers und der Rückkehr zur Verwendung der Software-Renderung mit einer sehr langsamen Shader-Kompilation. Ein Patch zur Lösung des Problems wurde bereits in snapd aufgenommen.
- Es wurde viel Zeit mit dem Kopieren der im Paket integrierten Add-ons in das Benutzerverzeichnis verbracht. Im Snap-Paket waren 98 Sprachpakete integriert, die alle unabhängig von der ausgewählten Sprache kopiert wurden.
- Verzögerungen traten auch aufgrund der Erkennung aller verfügbaren Schriftarten, Themen, Symbole und Schriftkonfigurationen auf.
Beim Start von Firefox aus Snap traten ebenfalls einzelne Leistungsprobleme während des Betriebs auf, aber die Entwickler von Ubuntu haben bereits Lösungen vorbereitet, die die Leistung verbessern. Zum Beispiel wurden ab Firefox 100.0 Optimierungen während der Linkerstellung (LTO) und basierend auf den Ergebnissen der Code-Profilierung (PGO) implementiert. Um die Probleme mit dem Austausch von Nachrichten zwischen Firefox und externen Subsystemen zu lösen, wurde ein neues XDG Desktop Portal vorbereitet, dessen Unterstützung sich im Prüfungsstatus für die Integration in Firefox befindet.
Als Gründe für die Förderung des Snap-Formats für Browser wird der Wunsch genannt, die Wartung zu vereinfachen und die Entwicklung für verschiedene Ubuntu-Versionen zu vereinheitlichen – das Deb-Paket erfordert eine separate Wartung für alle unterstützten Ubuntu-Zweige und macht damit das Erstellen und Testen unter Berücksichtigung unterschiedlicher Versionen von Systemkomponenten nötig, während das Snap-Paket sofort für alle Ubuntu-Zweige erstellt werden kann. Darüber hinaus wird das in Ubuntu angebotene Snap-Paket mit Firefox von Mitarbeitern der Mozilla Foundation betreut, das heißt, es wird aus erster Hand ohne Zwischenhändler bereitgestellt. Die Bereitstellung im Snap-Format hat auch dazu beigetragen, neue Versionen des Browsers schneller zu den Nutzern von Ubuntu zu bringen und ermöglicht es, Firefox in einer isolierten Umgebung auszuführen, die mit Hilfe des AppArmor-Mechanismus erstellt wurde, um das restliche System zusätzlich vor der Ausnutzung von Schwachstellen im Browser zu schützen.
Quelle: opennet.ru
