9 puan yazan kuroneko 2023-09-04 | 2 yorum | WhatsApp'ta paylaş
  • 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

 
kuroneko 2023-09-04

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?

 
kuroneko 2023-09-04

HN dizisinin yapay zeka özeti

  • skhameneh: WebAssembly ile öncü çalışmalar yapan ve GitHub'da keşif sürecini paylaşan Figma'nın eski CTO'su Evan Wallace'ı övüyor.
  • imslavko: Evan ve Jamie'nin önceki blog yazılarını paylaşarak Figma'nın WebAssembly'ye geçişini, performans testlerini ve zaman içindeki iyileştirmeleri ayrıntılı olarak anlatıyor.
  • fhub: Evan Wallace'ın 2012'de Figma'nın kurucu ortaklarından biri olduğunu ve 2021'de ayrılmadan önce 10 yıl boyunca CTO olarak görev yaptığını belirtiyor.
  • antoineMoPa: Şirketlerin ikincisinden ödün vermesi gerektiği varsayıldığında, Figma'nın hem ticari başarıyı hem de teknik mükemmeliyeti yakalamasına şaşırdığını ifade ediyor.
  • tobyjsullivan: Çoğu girişim kalite yerine özelliklere öncelik verirken, Figma'nın birkaç girişim gibi yeni teknolojiyi ticarileştirilebilecek kadar yenilikçi hale getirerek istisna olduğunu açıklıyor.
  • tmpz22: Güncel standardın sürekli entegrasyon geçişi olması gerektiğini söyleyerek, yakın dönem ürünlere dayanarak yazılıma yönelik dar beklentileri eleştiriyor.
  • yellow_lead: Figma'nın %20'lik hata payı göz önüne alındığında, başkalarının gürültülü performans testi ortamlarını nasıl ele aldığını sorguluyor.
  • imslavko: Figma'nın yardımcı donanım tabanlı test sistemi ile sanal makinelerdeki sapmaları gidermek için taban çizgisini nasıl hesapladıklarını ayrıntılı biçimde açıklıyor.
  • koenbok: Özel test Mac Mini'lerinde %15 sapmayla karşılaştıklarını ve sonunda gerçek kullanıcı izlemenin en güvenilir yöntem olduğunu gördüklerini Framer örneğiyle paylaşıyor.
  • chrisdbanks: Avrupa'da yükleme süresi sorunları ve görsellerin hızlı yüklenmemesini gördüğünü, bu yüzden Figma'nın ABD dışındaki bölgelerde yeterince test yapıp yapmadığını sorguluyor.