9 điểm bởi kuroneko 2023-09-04 | 2 bình luận | Chia sẻ qua WhatsApp
  • 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

 
kuroneko 2023-09-04

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ỉ?

 
kuroneko 2023-09-04

Tóm tắt AI của chuỗi HN

  • skhameneh: Gửi lời khen tới Evan Wallace, cựu CTO của Figma, vì công việc tiên phong với WebAssembly và việc chia sẻ hành trình khám phá trên GitHub.
  • imslavko: Chia sẻ các bài viết blog trước đây của Evan và Jamie, trong đó mô tả chi tiết việc Figma chuyển sang WebAssembly, các bài kiểm tra hiệu năng và những cải tiến theo thời gian.
  • fhub: Nhắc rằng Evan Wallace đã đồng sáng lập Figma vào năm 2012 và giữ vai trò CTO trong 10 năm trước khi rời đi vào năm 2021.
  • antoineMoPa: Bày tỏ sự ngạc nhiên khi Figma đạt được cả thành công thương mại lẫn sự xuất sắc về kỹ thuật, trong khi thường người ta cho rằng các công ty phải thỏa hiệp ở vế sau.
  • tobyjsullivan: Giải thích rằng Figma là ngoại lệ, trong khi phần lớn startup ưu tiên tính năng hơn chất lượng, còn chỉ một số ít có thể đổi mới công nghệ mới đến mức thương mại hóa được.
  • tmpz22: Chỉ trích kỳ vọng thiển cận đối với phần mềm dựa trên các sản phẩm gần đây, và cho rằng tiêu chuẩn hiện nay nên là vượt qua tích hợp liên tục.
  • yellow_lead: Đặt câu hỏi về cách những người khác xử lý môi trường kiểm tra hiệu năng nhiều nhiễu, khi xét đến biên độ sai số 20% của Figma.
  • imslavko: Giải thích chi tiết về hệ thống kiểm tra dựa trên phần cứng phụ trợ của Figma và cách tính đường cơ sở để xử lý độ lệch trong máy ảo.
  • koenbok: Chia sẻ rằng Framer từng đối mặt với độ lệch 15% ngay cả với Mac Mini kiểm thử chuyên dụng, và cuối cùng nhận ra giám sát người dùng thực tế là đáng tin cậy nhất.
  • chrisdbanks: Báo cáo vấn đề thời gian tải ở châu Âu và việc hình ảnh không tải nhanh, đồng thời đặt câu hỏi liệu Figma có kiểm thử đầy đủ ở ngoài nước Mỹ hay không.