- Sử dụng ba bộ dữ liệu: CrUX, HTTP Archive và Core Web Vitals
- So sánh từ Astro, Gatsby, Next.js, Nuxt, Remix, SvelteKit cho đến cả Wordpress (vì chiếm 43% thị phần web)
- Tỷ lệ vượt qua đánh giá Google CWV
- Astro 67% > SvelteKit 45% > Gatsby 39% > Remix 35% > Wordpress 30% > Next.js 27% > Nuxt 20%
- First Input Delay (FID), Cumulative Layout Shift (CLS), Largest Contentful Paint (LCP), Interaction to Next Paint (INP)
- Điểm hiệu năng Lighthouse, giá trị trung vị
- Astro 65% > SvelteKit 52% > Remix 46%
- Kích thước JavaScript Payload
- Astro 277KB > SvelteKit 323KB > Remix 568KB
4 bình luận
Việc cần tạo trang tĩnh thực ra nhiều hơn tưởng tượng, nên không có lý do gì để bài xích Astro đến mức đó.
SvelteKit có cú pháp gọn gàng, nhưng khác với SolidStart, nó không hỗ trợ Islands, nên bổ sung Astro là một giải pháp bù đắp tốt.
Tuy nhiên, như Ryan, người tạo ra Solid, đã nói, Islands chỉ là “một trong nhiều cách”. Điều quan trọng là mở rộng góc nhìn và sử dụng phương pháp phù hợp với từng tình huống.
(1) Quá thiên lệch vào tốc độ tải trang ban đầu khi so sánh các trường hợp sử dụng rất pha tạp. Các framework tổng quát như Next và Nuxt thường được dùng để xây dựng "app" nhiều hơn hẳn so với các "site" thiên về nội dung, vốn là thứ mà những framework như Astro được thiết kế rõ ràng để phục vụ.
Các trường hợp sử dụng khác nhau này có mức độ ưu tiên tối ưu hóa rất khác nhau giữa tốc độ tải trang và tốc độ tương tác sau khi tải, nhưng báo cáo lại trộn lẫn dữ liệu của các trường hợp sử dụng khác nhau đó một cách thiếu chọn lọc.
Nếu muốn chứng minh Astro giỏi trong việc xây dựng site thiên về nội dung, thì dữ liệu nên chỉ so sánh các site thiên về nội dung được xây bằng các fw khác nhau, thay vì gộp site và app lại để so sánh. Dù có nhắc đến INP (Interaction to Next Paint), phép so sánh này vẫn có lỗi nền tảng.
(2) Thiên lệch do tuổi đời framework. Điều này có được nhắc tới ở cuối báo cáo, nhưng có lẽ cần được nhấn mạnh rõ hơn. Đặc biệt, Nuxt 3 mới nhất mang lại cải thiện hiệu năng đáng kể so với Nuxt 2, nhưng tập dữ liệu nhiều khả năng chủ yếu vẫn gồm các site Nuxt 2 cũ.
Năng lực phát triển web nói chung về hiệu năng đã tiến hóa theo thời gian, nên thời đại của FW liên quan tới nhiều thứ hơn là chỉ bản thân FW. Next và Nuxt được phát hành vào năm 2016. Khi đó, nhìn chung các nhà phát triển chưa hiểu rõ các best practice hiệu năng hiện đại, và những chỉ số định hướng như CWV thậm chí còn chưa tồn tại.
(3) Thiên lệch lựa chọn/lấy mẫu. Báo cáo này không nêu rõ có bao nhiêu site được thu thập cho từng framework trong tập dữ liệu, nhưng tôi nghĩ số lượng site Astro có lẽ chỉ bằng một phần của một số framework cũ hơn.
Là một framework trẻ sử dụng marketing định hướng hiệu năng, tập người dùng hiện tại của Astro chủ yếu gồm các early adopter nhạy cảm với hiệu năng, trong khi các framework phổ biến hơn sẽ có tập người dùng trung bình ít nhạy cảm với hiệu năng hơn do mức độ chấp nhận rộng hơn.
Tôi nghĩ Astro có hiệu năng tốt cho đúng trường hợp sử dụng mà nó hướng tới, nhưng như mọi khi, các phép so sánh hiệu năng có động cơ marketing cần được tiếp nhận với sự dè dặt.
===
https://twitter.com/youyuxi/status/1633249827755814912
Hãy nhớ rằng đây là bài viết do đội Astro thực hiện ;)