- Da Projekte immer komplexer wurden und auch der Ressourcenbedarf für Performance-Tests stark anstieg, wurde ein neues Testsystem nötig.
- Gewünscht war ein ideales Testsystem, das bei allen Codeänderungen Tests ausführt, diese innerhalb von 10 Minuten abschließt und die Ergebnisse detailliert analysierbar macht.
- Die Performance von Figma wurde vor allem von CPU und GPU beeinflusst; unter Abwägung der Vor- und Nachteile verschiedener Ansätze wurde das System im Wesentlichen aus zwei Teilen aufgebaut.
- Cloud-basiertes System
- Mithilfe von VMs mit GPU, auf denen Headless Chromium läuft, werden Tests parallel ausgeführt, sodass sie innerhalb von 10 Minuten abgeschlossen werden.
- Da VMs naturgemäß leicht von externen Faktoren beeinflusst werden, wurde ein Puffer von etwa 20 % eingeplant.
- Hardware-basiertes System
- In einem System aus alten Laptops (ältere MacBooks, Windows-Laptops, Chromebooks usw.) werden alle Tests eingeplant und nacheinander ausgeführt.
- Die Tests dauern zwar lange, erlauben aber eine detaillierte Nachverfolgung subtiler Performance-Veränderungen auf echten Geräten.
- Nach dem Aufbau der beiden Testsysteme wurden weitere Anstrengungen zur Performance-Verbesserung unternommen, mit positiven Ergebnissen.
- Verbesserung der Rendering-Performance
- Es wurden Maßnahmen ergriffen, um die Rendering-Performance in Umgebungen zu verbessern, in denen zwar eine GPU, aber keine moderne CPU vorhanden ist.
- Detaillierte Untersuchungen per Stresstest zeigten, dass einige Funktionen auf bestimmter Hardware erheblichen Overhead verursachten.
- Durch eine feinere Aufteilung der Rendering-Zeit und die Implementierung eines neuen Algorithmus, der lokale Arbeit priorisiert, konnte die Performance auf älterer Hardware wirksam verbessert werden.
- Verbesserung der FigJam-Performance
- Das Schreiben von Tests war schwierig, aber statt wie bisher auf Basis von Kundenanfragen oder Metriken nachträglich zu korrigieren, konnten Probleme nun anhand der Tests im Voraus behoben werden.
- Auch Probleme, die wegen subtiler Performance-Unterschiede in CSS nur schwer zu entdecken waren, konnten durch dutzendfach wiederholte Tests gefunden und behoben werden.
- Besonders hilfreich war, dass sich Änderungen im Code, die zu Performance-Einbrüchen führten, präzise zurückverfolgen ließen.
- Performance-Verbesserungen sind ein anspruchsvoller Bereich, aber da sich menschliche Annahmen und die Realität oft unterscheiden, sind Tests und Performance-Messungen äußerst wichtig.
2 Kommentare
Es ist gut, dass sie die Performance durch Tests verbessert haben, aber ... trotzdem wirkt Figma immer noch ernsthaft langsam.
Auch in den HN-Kommentaren gibt es ziemlich viele Beschwerden darüber, wie extrem langsam es ist. -_-
Besonders seit der Übernahme durch Adobe habe ich das Gefühl, dass es enorm viel langsamer geworden ist (davor war es eigentlich schneller, als man erwarten würde ...)
Ist das wohl nur Einbildung?
KI-Zusammenfassung des HN-Threads