Cách JIT compile code trong 5 microgiây

Trước đây, tự viết một JIT compiler nghĩa là bạn phải vật lộn với assembly thuần hoặc ngồi chờ các toolchain nặng nề như LLVM.
Lập trình viên Malisper vừa cho thấy cách bỏ qua hoàn toàn chi phí đắt đỏ đó nhờ sự hỗ trợ của AI và một kỹ thuật gọi là copy-and-patch. Trong lúc xây dựng pgrust, họ đã tạo ra một JIT compiler có thể chuyển code thành lệnh máy chạy được chỉ trong khoảng 5 microgiây.
Vì sao lại quan trọng: Hầu hết cơ sở dữ liệu đều bỏ qua JIT compilation cho các tác vụ đơn giản vì sinh code qua LLVM hay C/C++ mất quá nhiều thời gian biên dịch. Chi phí biên dịch chỉ 5 microgiây làm thay đổi hoàn toàn bài toán: bạn có thể JIT compile cho từng truy vấn một, đạt tốc độ ngang code viết tay (thường nhanh gấp 10–20 lần các trình thông dịch cơ bản) mà không bị dính độ trễ lớn ban đầu.
Hãy hình dung copy-and-patch giống như trò chơi điền vào chỗ trống dành cho assembly. Engine sẽ lấy các mẫu mã máy dựng sẵn (gọi là "stencil"), điền các tham số lúc runtime, ghép chúng lại rồi chép thẳng kết quả vào bộ nhớ thực thi.
Các compiler framework cồng kềnh có lẽ sắp mất thế độc tôn về khả năng tối ưu tốc độ thực thi.
Nguồn
- JIT Compiling Code in 5μs — https://malisper.me/jit-compiling-code-in-5-us/
- Hacker News Discussion — https://news.ycombinator.com/item?id=49406387

