JIT sẽ giúp PHP chạy nhanh hơn từ 16% đến 50%.

Mục lục
JIT (Just-In-Time) là gì?
JIT (Just-In-Time) là công nghệ biên dịch thế hệ mới (biên dịch ngay lập tức), Bắt đầu từ PHP 8.0, JIT được tích hợp thẳng vào lõi của PHP như một phần mở rộng của OPcache.
Để dễ hình dung, anh hãy xem sự tiến hóa của việc xử lý code PHP qua 3 thời kỳ :
- Thời kỳ 1 – PHP Thuần (Không OPcache): Mỗi lần có người truy cập web, máy chủ phải lôi file code PHP ra đọc -> Dịch ra ngôn ngữ trung gian -> Cho máy ảo (Zend VM) chạy -> Trả về HTML. Quy trình này lặp đi lặp lại hàng vạn lần. (Rất chậm).
- Thời kỳ 2 – Có OPcache (PHP 7.x): Máy chủ dịch code PHP ra một “Bản nháp” gọi là Opcodes, rồi lưu bản nháp này vào RAM. Lần sau khách vào, hệ thống lấy luôn bản nháp ra cho máy ảo (Zend VM) đọc và chạy. (Nhanh hơn rất nhiều).
- Thời kỳ 3 – Đỉnh cao JIT (PHP 8.x): JIT theo dõi xem đoạn “Bản nháp” (Opcodes) nào được sử dụng nhiều nhất. Thay vì bắt Zend VM phải đọc bản nháp đó, JIT biên dịch thẳng bản nháp đó thành “Mã Máy” (Machine Code – mã nhị phân 0101). Lệnh này được gửi thẳng tới CPU để xử lý mà KHÔNG CẦN đi qua máy ảo Zend VM nữa.
Lợi ích của JIT mang lại là gì?
Sức mạnh cốt lõi của JIT nằm ở việc giải phóng hoàn toàn “người phiên dịch trung gian” (Zend VM). Dưới đây là những lợi ích tuyệt vời nhất:
Tăng tốc độ xử lý tính toán (CPU-Bound) một cách khủng khiếp Nếu đoạn code PHP yêu cầu tính toán logic nhiều, vòng lặp phức tạp, xử lý mảng (array) khổng lồ, Giúp xử lý các tác vụ nặng (như WooCommerce, Page Builder Elementor/Flatsome, xử lý hình ảnh, Cronjob) JIT sẽ làm nó chạy nhanh hơn từ 20% đến 50%.
Giảm tải đáng kể cho CPU Vì CPU được nhận thẳng lệnh mã máy (Machine Code) để thực thi ngay lập tức, nó không phải tốn chu kỳ xử lý (clock cycles) để giải nghĩa các tập lệnh phức tạp của PHP nữa. Nhờ vậy, VPS của khách hàng chạy mát hơn và chịu được nhiều traffic “hung hãn” hơn.
Thực tế JIT áp dụng cho WordPress (Sự thật cần biết)
JIT rất mạnh, nhưng anh cần biết sự thật này để tư vấn cho khách dùng WPTangToc OLS:
- Nơi JIT Tỏa Sáng Thực Sự trên WordPress:
- Các Page Builder siêu nặng: Elementor, Divi, Flatsome… Khi chúng phải render hàng nghìn dòng DOM HTML phức tạp.
- WooCommerce: Khi có các vòng lặp tính toán giỏ hàng, áp dụng mã giảm giá phức tạp, hoặc import/export hàng vạn sản phẩm qua file Excel/CSV.
- Xử lý hình ảnh: Các plugin nén ảnh, crop/resize ảnh chạy trực tiếp trên server (như Imagick/GD).
- WP-CLI: Các lệnh anh gõ trên Terminal qua
wp-clisẽ chạy mượt và nhanh hơn hẳn. - Backend dashboard admin chậm: JIT sẽ giúp cải thiện tốc độ tốt hơn
Bản thân mình đã có demo test: WordPress bản: 6.9.1 mọi thứ đều mặc định không thêm content hay thêm plugin hay themes gì cả. chạy trên hệ thống wptangtoc ols dùng PHP 8.2. Tắt tất cả cache ngoại trừ opcache PHP.
So sánh: Khi có JIT và không có.
- Khi có JIT: được 24 yêu cầu / giây
- Khi không có JIT: được 28 yêu cầu / giây
Bài test dùng ab cơ bản: ab -n 1000 -c 100 với con VPS cùi cùi 1 core cpu và 1GB RAM
Ghi chú: Nếu test trên bài toàn plugin nặng và theme nặng thì hiệu suất nó sẽ khác biệt hơn rất nhiều.
Thực tế JIT áp dụng cho WordPress (Không cần thiết)
Ngốn ram
Tóm lại: Khi anh bật cả 2, tiến trình PHP (lsphp) sẽ “ngậm” của VPS tối đa khoảng 256MB RAM (128MB cho OPcache + 128MB cho JIT) chỉ riêng cho việc cache code.
Nếu máy chủ bạn ít ram rất ít ram thì cũng có thể tắt.
Với Web được triển Page Cache html tốt: sẽ gần như không thấy sự khác biệt về hiệu suất.
Cách triển khai JIT
Điều kiện bắt buộc cần phải có:
- Sử dụng PHP 8.0 trở lên – JIT chỉ hỗ trợ PHP 8.0 trở lên mà thôi
- Đã kích hoạt OPcache PHP
Cái này mình chỉ hướng dẫn với anh em dùng VPS, Server riêng thôi sở hữu quyền root thôi, còn với share hosting thì không thể tác động (Share hosting hên thì hãng hỗ trợ không thì bó tay).
Hướng dẫn triển khai:
opcache.jit=tracing opcache.jit_buffer_size=64M
Bạn hãy đưa đoạn code này vào file php.ini xong rồi reboot lại server webserver máy chủ. Nếu website bạn nặng hơn và máy chủ nhiều ram có thể tăng 64M bằng một con số cao hơn phù hợp với nhu cầu của bạn.
Mỗi một máy chủ thì sẽ có một vị trí php.ini khác nhau
Còn với WPTangToc OLS từ phiên bản: 6.7.2 khi cài PHP mới thì mặc định đã triển khai JIT
Cách kiểm tra mình đã triển khai JIT hay chưa.
Bạn có thể kiểm tra bằng cách tạo một file info.php với nội dung:
<?php phpinfo(); ?>
Sau đó tìm kiếm kéo xuống mục Zend OPcache ở đó có phần JIT xem nó đang được on hay off.

Kết luận:
Nói cách khác, JIT giúp PHP phá bỏ giới hạn của một ngôn ngữ thông dịch (interpreted language) để tiệm cận với tốc độ của các ngôn ngữ biên dịch như C++ hay Rust trong các tác vụ tính toán.



Để lại một bình luận