- Projeler giderek daha karmaşık hale gelirken performans testleri için gereken kaynaklar da çok arttı ve bu nedenle yeni bir test sistemine ihtiyaç duyuldu.
- Tüm kod değişiklikleri için test çalıştıran, testleri 10 dakika içinde tamamlayan ve sonuçları ayrıntılı biçimde analiz edebilen ideal bir test sistemi istendi.
- Figma’nın performansı ağırlıklı olarak CPU ve GPU’dan etkileniyordu; farklı yaklaşımların artıları ve eksileri değerlendirilerek sistem büyük ölçüde iki parçalı olarak tasarlandı.
- Bulut tabanlı sistem
- Headless Chromium çalıştıran, GPU’lu VM’ler kullanılarak testler paralel biçimde yürütüldü ve böylece testlerin 10 dakika içinde tamamlanması sağlandı.
- VM’lerin doğası gereği dış etkenlerden kolay etkilenebildiği düşünüldüğünden yaklaşık %20 pay bırakıldı.
- Donanım tabanlı sistem
- Eski dizüstü bilgisayarlardan (eski MacBook’lar, Windows dizüstü bilgisayarlar, Chromebook’lar vb.) oluşan bir sistemde tüm testler planlanarak sıralı şekilde çalıştırıldı.
- Testler uzun sürse de, gerçek cihazlarda ortaya çıkan ince performans değişimleri ayrıntılı olarak izlenebildi.
- Bu iki test sistemi kurulduktan sonra performansı iyileştirmek için yapılan çalışmaların sonucunda olumlu sonuçlar elde edildi.
- Render performansını iyileştirme
- Güncel CPU bulunmayan ortamlarda GPU’nun render performansını iyileştirmeye yönelik çalışmalar yapıldı.
- Stres testleriyle yapılan ayrıntılı inceleme sonucunda, bazı özelliklerin belirli donanımlarda büyük ek yük oluşturduğu görüldü.
- Render süresi ayrıntılı biçimde bölünerek yerel işleri önceliklendiren yeni bir algoritma uygulandı ve eski donanımlarda performans etkili biçimde artırıldı.
- FigJam performansını iyileştirme
- Test yazmak zordu, ancak müşteri talepleri ya da metriklere bakıp sonradan düzeltme yapılan eski yaklaşımdan çıkılarak, testlere bakıp sorunlar önceden giderilebilir hale geldi.
- CSS’teki ince performans farkları gibi kolay fark edilmeyen sorunlar da testler onlarca kez tekrar edilerek bulunup düzeltilebildi.
- Özellikle performans düşüşüne yol açan kod değişikliklerinin tam olarak izlenebilmesi büyük fayda sağladı.
- Performans iyileştirmesi zor bir alan olsa da, insanların düşündüğüyle gerçekte olan sık sık farklı olduğundan test ve performans ölçümü son derece önemlidir.
2 yorum
Performans iyileştirmelerini testlerle yapmış olmaları güzel ama... Figma hâlâ ciddi şekilde yavaş gibi geliyor.
HN yorumlarında da aşırı yavaş olduğuna dair epey şikâyet var. -_-
Özellikle Adobe tarafından satın alındıktan sonra inanılmaz yavaşladığını hissediyorum (ondan önce düşündüğümden daha hızlıydı...)
Herhâlde bana öyle geliyordur?
HN dizisinin yapay zeka özeti