Một trình biên dịch JavaScript mới có tên Porffor đã gây ra cuộc tranh luận sôi nổi trong cộng đồng nhà phát triển sau khi chứng minh được những cải thiện hiệu suất ấn tượng trên AWS Lambda . Công cụ thử nghiệm này biên dịch JavaScript trước thời gian thành WebAssembly và các tệp nhị phân gốc, tuyên bố loại bỏ được độ trễ khởi động nguội gây khó khăn cho các ứng dụng serverless.
Dự án đã thu hút sự chú ý nhờ tạo ra các tệp nhị phân nhỏ gọn dưới 1MB có thể khởi động trong vài mili giây, so với các runtime Node.js truyền thống có thể mất hàng trăm mili giây để khởi tạo. Trong các bài kiểm tra hiệu suất Lambda , Porffor cho thấy tốc độ khởi động nguội nhanh hơn 12 lần so với Node.js và nhanh hơn 4 lần so với runtime LLRT của chính Amazon .
So sánh hiệu năng (Thời gian khởi động nguội)
- Porffor: ~25ms (P50), ~50ms (P99)
- LLRT: ~100ms (P50), ~200ms (P99)
- Node.js: ~150ms (P50), ~300ms (P99)
So sánh kích thước tệp nhị phân
- Porffor: 16KB
- Bun compiled: 97MB
- Deno compiled: 82MB
Benchmark tốc độ thực thi
- Porffor: 631.4 µs ± 128.5 µs
- Bun: 15.9 ms ± 1.2 ms (chậm hơn 25 lần)
- Deno: 37.4 ms ± 1.7 ms (chậm hơn 59 lần)
![]() |
|---|
| Khám phá cách Porffor cải thiện hiệu suất bằng việc loại bỏ tình trạng khởi động chậm JavaScript trên AWS Lambda |
Các Tuyên Bố Về Hiệu Suất Gặp Phải Sự Hoài Nghi
Mặc dù các con số thô trông có vẻ ấn tượng, các thành viên cộng đồng đang nêu lên mối lo ngại về tính hợp lệ của những so sánh này. Một số nhà phát triển chỉ ra rằng Porffor hiện tại chỉ hỗ trợ 60% các tính năng JavaScript và thiếu các khả năng thiết yếu như hoạt động I/O và khả năng tương thích với Node.js . Các nhà phê bình cho rằng điều này khiến việc so sánh hiệu suất trở nên gây hiểu lầm.
Chúng tôi nhanh hơn! (xin hãy bỏ qua thực tế là chúng tôi chỉ hơn một chút so với một bản demo). Mọi người đều biết về quy tắc 80:20, sự chậm lại sẽ đến sau khi bạn bắt đầu làm mọi thứ mà đối thủ cạnh tranh của bạn làm.
Cuộc tranh luận phản ánh một mô hình phổ biến trong công nghệ khi các dự án giai đoạn đầu thể hiện những cải thiện hiệu suất đáng kể trước khi triển khai bộ tính năng đầy đủ. Một số thành viên cộng đồng so sánh điều này với các công cụ khác đã thấy hiệu suất giảm sút khi chúng trưởng thành.
Những Hạn Chế Hiện Tại
- Chỉ hỗ trợ 60% tính năng JavaScript
- Không có garbage collection
- Không hỗ trợ các thao tác I/O
- Không tương thích với API Node.js
- Đang ở giai đoạn phát triển pre-alpha
- Hỗ trợ hệ sinh thái thư viện hạn chế
Kiến Trúc Kỹ Thuật Gây Ra Thảo Luận
Cách tiếp cận của Porffor trong việc biên dịch JavaScript thành WebAssembly như một biểu diễn trung gian đã tạo ra các cuộc thảo luận kỹ thuật. Công cụ này loại bỏ chi phí runtime JavaScript truyền thống bằng cách tạo ra các tệp nhị phân gốc, nhưng điều này đi kèm với những đánh đổi đáng kể.
Khía cạnh gây tranh cãi nhất là việc thiếu garbage collection. Trong khi một số nhà phát triển coi điều này là có thể chấp nhận được đối với các hàm Lambda tồn tại ngắn hạn, những người khác lại cho rằng nó thay đổi cơ bản ngữ nghĩa của JavaScript . Cộng đồng chia rẽ về việc liệu quản lý bộ nhớ cấp độ yêu cầu thông qua process forking hoặc arena allocation có thể hoạt động trong thực tế hay không.
Các cuộc thảo luận kỹ thuật cũng tập trung vào việc liệu cách tiếp cận biên dịch của Porffor có thể mở rộng để xử lý các trường hợp phức tạp của JavaScript và hệ sinh thái Node.js rộng lớn mà hầu hết các ứng dụng sản xuất phụ thuộc vào hay không.
Tính Sẵn Sàng Sản Xuất Bị Đặt Câu Hỏi
Việc áp dụng trong doanh nghiệp phải đối mặt với những rào cản đáng kể ngoài các hạn chế kỹ thuật. Một số thành viên cộng đồng bày tỏ lo ngại rằng các tập đoàn lớn sẽ do dự trong việc áp dụng công cụ thử nghiệm như vậy do các mối lo ngại về bảo mật và ổn định. Trạng thái pre-alpha của dự án và sự hỗ trợ JavaScript hạn chế khiến nó không phù hợp cho hầu hết các ứng dụng thực tế.
Tuy nhiên, những người ủng hộ cho rằng dự án xác nhận các khái niệm quan trọng về biên dịch trước thời gian cho JavaScript . Họ gợi ý rằng ngay cả khi bản thân Porffor không đạt được tính sẵn sàng sản xuất, nó vẫn chứng minh các cách tiếp cận có giá trị có thể ảnh hưởng đến việc phát triển runtime JavaScript trong tương lai.
Kết Luận
Thí nghiệm Porffor làm nổi bật những thất vọng đang diễn ra với hiệu suất khởi động nguội của JavaScript đồng thời phơi bày sự phức tạp của việc tạo ra các giải pháp thay thế sẵn sàng sản xuất. Mặc dù các con số hiệu suất rất ấn tượng, cộng đồng vẫn chia rẽ về việc liệu các đánh đổi có thể chấp nhận được hay không và liệu dự án có thể vượt qua các hạn chế hiện tại của mình hay không.
Cuộc tranh luận phản ánh những câu hỏi rộng hơn về tương lai của JavaScript và liệu biên dịch trước thời gian có thể cùng tồn tại với bản chất động của ngôn ngữ và các yêu cầu hệ sinh thái rộng lớn hay không.

