Thông tin liên hệ
- 036.686.3943
- admin@nguoicodonvn2008.info
Dù JavaScript ban đầu được tạo ra để chạy các đoạn script trong trang web, ngày nay nó đã được dùng để viết ứng dụng desktop, phần mềm máy chủ và gần như mọi thứ ở giữa. Giờ đây, JavaScript thậm chí còn có thể trở thành lựa chọn cho các hệ thống nhúng và vi điều khiển cực kỳ hạn chế bộ nhớ, nhờ vào dự án MicroQuickJS.
MicroQuickJS là một dự án mới của Fabrice Bellard, cái tên đứng sau hàng loạt dự án mã nguồn mở nổi tiếng như QEMU, FFmpeg, bộ nén dữ liệu không mất mát NNCP hay trình giả lập JSLinux. Dự án lần này được xây dựng dựa trên QuickJS, một engine JavaScript tối giản viết bằng ngôn ngữ C do chính ông phát triển.
https://github.com/bellard/mquickjs
Mục tiêu của MicroQuickJS là biên dịch và chạy mã JavaScript với mức tiêu thụ bộ nhớ cực thấp, chỉ khoảng 10 kB RAM, trong khi toàn bộ engine chỉ cần khoảng 100 kB bộ nhớ ROM, đã bao gồm cả thư viện C đi kèm. Engine này hỗ trợ một tập con của JavaScript, gần với chuẩn ES5 (ECMAScript 2009). Điều đó cũng đồng nghĩa các tính năng mới hơn từ ES6 trở đi như let , const , arrow function hay Map gần như sẽ không hoạt động.
So với các engine JavaScript thông thường, MicroQuickJS còn “khó tính” hơn. Nó chủ động chặn một số thao tác dễ gây lỗi hoặc kém hiệu quả, chẳng hạn như mảng có các phần tử trống (arrays with holes).
Theo tài liệu dự án, dù MicroQuickJS chia sẻ khá nhiều mã nguồn với QuickJS, phần kiến trúc bên trong đã được thay đổi đáng kể để giảm mức tiêu thụ bộ nhớ. Cụ thể, engine này sử dụng tracing garbage collector, máy ảo không dùng stack của CPU, và chuỗi ký tự được lưu ở định dạng UTF-8.
Tất nhiên, MicroQuickJS sẽ không thể thay thế Node.js trong phần lớn dự án hiện nay. Engine này dường như không hỗ trợ mạng hay truy cập hệ thống tập tin của thiết bị. Tuy vậy, nó lại tỏ ra rất phù hợp với các thiết bị nhỏ gọn như Arduino hay Raspberry Pi Pico, nơi những engine JavaScript phổ biến gần như không có cửa hoạt động.
Tài liệu cũng mô tả khá chi tiết kiến trúc nội bộ của engine, bao gồm cả trình giả lập số thực dấu phẩy động trong trường hợp CPU không hỗ trợ trực tiếp, cùng với việc gần như không phụ thuộc vào thư viện C. Dù các kịch bản ứng dụng thực tế có thể còn hạn chế, đây vẫn là một dự án cực kỳ ấn tượng về mặt kỹ thuật.
Nếu tò mò, bạn có thể ghé qua kho mã nguồn trên GitHub để xem code, hướng dẫn biên dịch, benchmark và tìm hiểu sâu hơn về cách MicroQuickJS hoạt động. Hiện tại dự án chưa cung cấp file nhị phân sẵn, nên nếu muốn trải nghiệm, bạn sẽ cần tự biên dịch.
Nguồn tin: Quantrimang.com
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn
TOP công cụ AI pháp luật giúp tra cứu luật và giải đáp pháp lý
Cursor là gì?
Cách đồng bộ ngữ cảnh giữa ChatGPT, Claude, Gemini với ThreadPort
Hướng dẫn dùng Gemini Live chat bằng giọng nói
Hướng dẫn tạo ảnh thời khóa biểu chỉ bằng 1 câu lệnh
TOP công cụ AI cải thiện chất lượng video
Hướng dẫn chỉnh sửa video trong Google Flow
5 lợi ích của Google AI Pro mà nhiều người chưa tận dụng
7 ý tưởng prompt viết bài bằng AI giúp thúc đẩy quy trình sáng tạo nội dung
5 cách sáng tạo để sử dụng LLM
Tạo video AI đầu tiên của bạn trong 10 phút
TOP công cụ hữu ích nên thử trên Quantrimang
Prompt tạo poster nội quy lớp học các cấp
Hướng dẫn lấy Gemini API Key và kết nối với n8n chi tiết
NoteGPT AI Detector: Công cụ phát hiện nội dung do AI tạo
Vì sao nên chạy AI agent trong Windows Sandbox?
15 prompt Claude luyện tập phỏng vấn xin việc
Claude Cowork hay ChatGPT Work là công cụ đáng tin tưởng để hoàn thành công việc?
Không cần gõ prompt: Gemini Live giờ có thể tạo ảnh bằng lời nói
ChatGPT và Claude sẽ phản ứng như thế nào nếu bạn đưa ra những yêu cầu phi đạo đức?