9 poin oleh kuroneko 2023-09-04 | 2 komentar | Bagikan ke WhatsApp
  • Seiring proyek menjadi semakin kompleks, sumber daya untuk pengujian performa juga meningkat pesat sehingga dibutuhkan sistem pengujian baru.
  • Mereka menginginkan sistem pengujian ideal yang menjalankan tes untuk setiap perubahan kode, menyelesaikan pengujian dalam 10 menit, dan memungkinkan analisis hasil secara mendetail.
  • Performa Figma terutama dipengaruhi oleh CPU dan GPU, dan setelah mempertimbangkan kelebihan serta kekurangan dari berbagai pendekatan, mereka membangunnya menjadi dua sistem besar.
  • Sistem berbasis cloud
    • Menggunakan VM dengan GPU yang menjalankan Headless Chromium untuk mengeksekusi pengujian secara paralel sehingga selesai dalam waktu 10 menit.
    • Karena karakteristik VM mudah terpengaruh faktor eksternal, mereka menambahkan kelonggaran sekitar 20%.
  • Sistem berbasis hardware
    • Menjadwalkan semua pengujian pada sistem yang terdiri dari laptop lama (MacBook lawas, laptop Windows, Chromebook, dan sebagainya) untuk dijalankan secara berurutan.
    • Pengujiannya memakan waktu lama, tetapi dapat melacak secara detail perubahan performa halus yang muncul pada perangkat nyata.
  • Setelah membangun dua sistem pengujian ini dan berupaya meningkatkan performa, mereka memperoleh hasil yang positif.
  • Peningkatan performa rendering
    • Upaya meningkatkan performa rendering di lingkungan tempat GPU tidak dipasangkan dengan CPU modern.
    • Hasil investigasi detail melalui stress test menunjukkan bahwa beberapa fitur menimbulkan overhead besar pada sebagian hardware.
    • Dengan membagi waktu rendering secara rinci dan mengimplementasikan algoritma baru yang memprioritaskan pekerjaan lokal, mereka secara efektif meningkatkan performa pada hardware lama.
  • Peningkatan performa FigJam
    • Menulis pengujian memang sulit, tetapi dari pendekatan lama yang memperbaiki masalah setelah melihat pertanyaan pelanggan atau metrik, mereka kini bisa melihat hasil tes dan memperbaiki masalah lebih awal.
    • Masalah yang sulit ditemukan dengan mudah, seperti perbedaan performa yang halus pada CSS, juga dapat ditemukan dan diperbaiki dengan mengulang pengujian puluhan kali.
    • Terutama, kemampuan untuk melacak dengan tepat perubahan kode yang menyebabkan penurunan performa sangat membantu.
  • Peningkatan performa adalah bidang yang rumit, tetapi karena apa yang dipikirkan manusia dan kenyataan sering kali berbeda, pengujian dan pengukuran performa sangatlah penting.

2 komentar

 
kuroneko 2023-09-04

Bagus sih kalau ada peningkatan performa lewat pengujian... tapi sepertinya Figma masih tetap sangat lambat.
Di komentar HN juga cukup banyak keluhan bahwa itu sangat lambat. -_-

Saya terutama merasa sejak diakuisisi oleh Adobe, performanya jadi jauh lebih lambat (sebelumnya sebenarnya lebih cepat dari yang saya kira...)
Mungkin cuma perasaan saya saja?

 
kuroneko 2023-09-04

Ringkasan AI dari thread HN

  • skhameneh: Memberikan pujian kepada Evan Wallace, mantan CTO Figma, atas kerja pionirnya dengan WebAssembly dan karena telah membagikan proses eksplorasinya di GitHub.
  • imslavko: Membagikan postingan blog lama dari Evan dan Jamie yang merinci transisi Figma ke WebAssembly, pengujian performa, dan berbagai peningkatannya dari waktu ke waktu.
  • fhub: Menyebut bahwa Evan Wallace ikut mendirikan Figma pada 2012 dan menjabat sebagai CTO selama 10 tahun hingga keluar pada 2021.
  • antoineMoPa: Mengungkapkan kekaguman bahwa Figma berhasil meraih kesuksesan komersial sekaligus keunggulan teknis, padahal biasanya perusahaan diasumsikan harus berkompromi pada yang kedua.
  • tobyjsullivan: Menjelaskan bahwa Figma adalah pengecualian, sementara sebagian besar startup memprioritaskan fitur daripada kualitas, karena hanya sedikit startup yang mampu menginovasi teknologi baru hingga bisa dikomersialisasikan.
  • tmpz22: Mengkritik ekspektasi sempit terhadap software berdasarkan produk-produk belakangan ini, dengan menyatakan bahwa standar saat ini seharusnya adalah continuous integration pass.
  • yellow_lead: Mempertanyakan bagaimana pihak lain menangani lingkungan pengujian performa yang penuh noise, mengingat margin kesalahan Figma sebesar 20%.
  • imslavko: Menjelaskan secara rinci sistem pengujian berbasis hardware tambahan milik Figma dan cara menghitung baseline untuk mengatasi variasi pada mesin virtual.
  • koenbok: Membagikan bahwa Framer menghadapi variasi 15% bahkan dengan Mac Mini pengujian khusus, dan pada akhirnya menemukan bahwa pemantauan pengguna nyata adalah yang paling dapat diandalkan.
  • chrisdbanks: Melaporkan masalah waktu muat dan gambar yang tidak cepat termuat di Eropa, serta mempertanyakan apakah Figma melakukan pengujian yang memadai di luar AS.