- เมื่อโปรเจ็กต์ซับซ้อนขึ้นเรื่อย ๆ และทรัพยากรสำหรับการทดสอบประสิทธิภาพก็เพิ่มขึ้นมาก จึงจำเป็นต้องมีระบบทดสอบใหม่
- ต้องการระบบทดสอบในอุดมคติที่สามารถทดสอบทุกการเปลี่ยนแปลงของโค้ดให้เสร็จภายใน 10 นาที พร้อมวิเคราะห์ผลลัพธ์ได้อย่างละเอียด
- ประสิทธิภาพของ Figma ได้รับผลกระทบหลักจาก CPU และ GPU จึงออกแบบเป็น 2 ระบบใหญ่โดยพิจารณาข้อดีข้อเสียของหลายแนวทาง
- ระบบบนคลาวด์
- ใช้ VM ที่มี GPU สำหรับรัน Headless Chromium เพื่อรันทดสอบแบบขนาน ทำให้การทดสอบเสร็จภายใน 10 นาที
- เนื่องจากคุณลักษณะของ VM ทำให้ได้รับผลกระทบจากปัจจัยภายนอกได้ง่าย จึงเผื่อระยะไว้ประมาณ 20%
- ระบบบนฮาร์ดแวร์
- จัดคิวให้การทดสอบทั้งหมดทำงานแบบลำดับบนระบบที่ประกอบด้วยโน้ตบุ๊กเก่า ๆ เช่น MacBook รุ่นเก่า โน้ตบุ๊ก Windows และ Chromebook
- แม้การทดสอบจะใช้เวลานาน แต่สามารถติดตามความเปลี่ยนแปลงด้านประสิทธิภาพเล็ก ๆ น้อย ๆ ที่เกิดขึ้นบนอุปกรณ์จริงได้อย่างละเอียด
- หลังจากสร้างระบบทดสอบทั้งสองแบบแล้ว ก็ได้ผลลัพธ์เชิงบวกจากความพยายามปรับปรุงประสิทธิภาพ
- การปรับปรุงประสิทธิภาพการเรนเดอร์
- พยายามปรับปรุงประสิทธิภาพการเรนเดอร์ในสภาพแวดล้อมที่มี GPU แต่ไม่มี CPU รุ่นใหม่
- จากการตรวจสอบอย่างละเอียดผ่าน stress test พบว่าบางฟีเจอร์ก่อให้เกิด overhead สูงบนฮาร์ดแวร์บางประเภท
- จึงแบ่งเวลาการเรนเดอร์อย่างละเอียดและนำอัลกอริทึมใหม่ที่ให้ความสำคัญกับงานในเครื่องก่อนมาใช้ เพื่อปรับปรุงประสิทธิภาพบนฮาร์ดแวร์รุ่นเก่าได้อย่างมีประสิทธิผล
- การปรับปรุงประสิทธิภาพของ FigJam
- แม้การเขียนเทสต์จะยาก แต่จากเดิมที่ต้องดูคำถามจากลูกค้าหรือดูตัวชี้วัดแล้วค่อยแก้ไข ก็เปลี่ยนมาเป็นดูจากผลทดสอบและแก้ปัญหาได้ล่วงหน้า
- ปัญหาที่ค้นพบได้ยาก เช่น ความต่างด้านประสิทธิภาพเล็กน้อยของ CSS ก็สามารถค้นพบและแก้ไขได้ด้วยการรันทดสอบซ้ำหลายสิบครั้ง
- โดยเฉพาะอย่างยิ่ง การติดตามการเปลี่ยนแปลงของโค้ดที่ทำให้ประสิทธิภาพลดลงได้อย่างแม่นยำเป็นประโยชน์มาก
- การปรับปรุงประสิทธิภาพเป็นงานที่ท้าทาย แต่สิ่งที่คนคิดกับสิ่งที่เกิดขึ้นจริงมักต่างกัน จึงทำให้การทดสอบและการวัดประสิทธิภาพมีความสำคัญอย่างมาก
2 ความคิดเห็น
การปรับปรุงประสิทธิภาพผ่านการทดสอบนั้นเป็นเรื่องที่ดี แต่... ดูเหมือนว่า Figma ก็ยังช้ามากอยู่ดี
ในคอมเมนต์ HN ก็มีคนบ่นกันเยอะพอสมควรว่าช้ามากเหมือนกันนะ -_-
โดยเฉพาะหลังจากถูก Adobe เข้าซื้อกิจการ ผมรู้สึกว่ามันช้าลงไปมากเลย (ก่อนหน้านั้นมันเร็วกว่าที่คิดนะ...)
คงคิดไปเองมั้ง?
สรุป AI ของเธรด HN