- Khi dự án ngày càng phức tạp, lượng tài nguyên cần cho kiểm thử hiệu năng cũng tăng mạnh, nên cần một hệ thống kiểm thử mới.
- Mục tiêu là có một hệ thống kiểm thử lý tưởng: chạy kiểm thử cho mọi thay đổi mã, hoàn thành trong vòng 10 phút và có thể phân tích kết quả chi tiết.
- Hiệu năng của Figma chủ yếu chịu ảnh hưởng bởi CPU và GPU, nên sau khi cân nhắc ưu và nhược điểm của nhiều cách tiếp cận, họ xây dựng hệ thống gồm 2 phần lớn.
- Hệ thống dựa trên đám mây
- Sử dụng VM có GPU chạy Headless Chromium để thực thi kiểm thử song song, nhằm hoàn tất trong vòng 10 phút.
- Do đặc tính của VM dễ bị tác động bởi yếu tố bên ngoài, hệ thống được chừa khoảng đệm khoảng 20%.
- Hệ thống dựa trên phần cứng
- Lên lịch toàn bộ bài kiểm thử để chạy tuần tự trên một hệ thống gồm các laptop cũ (MacBook đời cũ, laptop Windows, Chromebook, v.v.).
- Dù kiểm thử mất nhiều thời gian hơn, hệ thống này theo dõi chi tiết những thay đổi hiệu năng tinh vi xuất hiện trên thiết bị thực.
- Sau khi xây dựng hai hệ thống kiểm thử này và liên tục nỗ lực cải thiện hiệu năng, họ đã đạt được kết quả tích cực.
- Cải thiện hiệu năng render
- Nỗ lực cải thiện hiệu năng render trong môi trường có GPU nhưng không có CPU hiện đại.
- Qua điều tra chi tiết bằng stress test, họ phát hiện một số tính năng gây ra overhead lớn trên vài loại phần cứng.
- Bằng cách chia nhỏ thời gian render một cách chi tiết và triển khai thuật toán mới ưu tiên công việc cục bộ, họ đã cải thiện hiệu năng hiệu quả trên phần cứng cũ.
- Cải thiện hiệu năng FigJam
- Việc viết bài kiểm thử khá khó, nhưng thay vì chỉ sửa dựa trên phản hồi khách hàng hoặc chỉ số như trước, giờ đây họ có thể xem kiểm thử và sửa vấn đề từ sớm.
- Nhờ lặp lại kiểm thử hàng chục lần, họ cũng có thể phát hiện và sửa những vấn đề khó nhận ra, chẳng hạn khác biệt hiệu năng rất nhỏ trong CSS.
- Đặc biệt, khả năng truy vết chính xác thay đổi mã gây ra suy giảm hiệu năng đã mang lại nhiều ích lợi.
- Cải thiện hiệu năng là một lĩnh vực khó, nhưng vì điều con người nghĩ và thực tế thường khác nhau, nên việc kiểm thử và đo hiệu năng là cực kỳ quan trọng.
2 bình luận
Việc cải thiện hiệu năng thông qua thử nghiệm thì tốt đấy... nhưng Figma dường như vẫn chậm một cách nghiêm trọng.
Ngay cả trong phần bình luận trên HN cũng có khá nhiều lời phàn nàn rằng nó cực kỳ chậm. -_-
Đặc biệt, tôi có cảm giác nó đã chậm đi rất nhiều kể từ sau khi bị Adobe mua lại (trước đó thì thực ra còn nhanh hơn tôi nghĩ...)
Chắc là do cảm giác của tôi thôi nhỉ?
Tóm tắt AI của chuỗi HN