Inside Turbopack: Building Faster by Building Less
Bài tóm tắt Vercel 2026 3. Quy mô lớn Độ khó: Khó
Vercel · 2026 · 3. Quy mô lớn · Độ khó: Khó — bài gốc
Vercel vừa làm framework Next.js vừa bán nền tảng chạy nó; nhận định về sản phẩm của họ trong trang này đều là "theo Vercel".
Bối cảnh
- Turbopack là bundler mặc định của Next.js, cần build tức thì và Fast Refresh theo từng phím gõ ngay cả với app rất lớn. Theo Vercel, tính toán gia tăng thêm độ phức tạp, bug, CPU và RAM, dùng sai còn chậm hơn; họ vẫn chọn vì đó là lõi của sản phẩm. Ý tưởng lấy từ Salsa, Parcel, query system của Rust compiler và Adapton.
Thay đổi chính
- Cache theo hàm, tự theo dõi phụ thuộc: kiểu Make khai báo đồ thị tay và cache theo file nên dễ sai và cache thô. Bundler (tree shaking, gom chung) có quan hệ nhiều-nhiều giữa file nguồn và artifact nên cần cache mịn mà không khai báo tay.
- Value cells (
Vc<…>): như ô bảng tính hay signal. Hàm nào đọc một cell thì phụ thuộc vào đúng cell đó, nên chỉ chạy lại khi cell đã đọc đổi, không phải khi object tham số đổi ở chỗ khác. Cell biểu diễn file, AST, metadata import/export, thông tin chunking. - Bẩn và lan truyền: watcher thấy file đổi thì đánh dấu mọi hàm đọc nó là "bẩn"; cell có nội dung bằng cũ thì dừng lan. Tính lại theo yêu cầu: hàm bẩn chỉ chạy lại khi thuộc một query đang hoạt động (trang đang mở khi dev, toàn app khi build).
- Aggregation graph: đồ thị tới hàng trăm nghìn hay hàng triệu kết quả trung gian nên có đồ thị tóm tắt nhiều tầng, gắn sẵn lỗi và cảnh báo, để khỏi duyệt cả đồ thị.
- Cache trên đĩa: trước 16.1 cache chỉ ở RAM; 16.1 bật mặc định lưu đồ thị và kết quả trung gian ra đĩa cho
next dev. Theo bài, mất hơn một năm để đạt chuẩn.
Bài học cho SWE
- Cache gia tăng chỉ đáng khi theo dõi phụ thuộc đủ mịn và tự động; cái giá của mịn là cấu trúc tóm tắt và cache bền.
- Tính lại theo yêu cầu tránh làm việc cho phần không ai nhìn.
Liên quan
#Turbopack#incremental computation#value cells#dependency graph#aggregation graph#demand-driven#file system cache#Salsa#Rust#Next.js 16.1
Được nhắc tới trong
Công ty (1)
Bài tóm tắt (5)