PHP-8 sẽ được phát hành vào cuối năm nay và một trong những tính năng thú vị nhất của nó là trình biên dịch JIT.
Đây vốn là tính năng nổi tiếng trên Java và JavaScript.
Vậy PHP-8 sẽ nhanh như thế nào?
PHP 8 Nhanh như thế nào với trình biên dịch JIT?
Hãy để xem cách nó cải thiện tốc độ của một tập lệnh PHP.
Về lý thuyết, JIT (Just-In-Time) sẽ tăng tốc độ của một ứng dụng do cách nó xử lý việc biên dịch các tập lệnh PHP.
Nhưng liệu xem nó có đáp ứng được mong đợi của chúng ta qua bài test hiệu năng?
*Lưu ý!
Phiên bản PHP-8 mà mình đang sử dụng không phải là phiên bản cuối cùng.
Thử nghiệm hiệu năng của PHP-8 xem nó nhanh thế nào?
Trước hết, để bắt đầu, chúng ta cần có một tập lệnh PHP.
Và mình chọn thuật toán bumble sort vì nó nổi tiếng tệ hại.
Bạn có thể tải Source code trên GitHub
Và để đơn giản nhất, không bị ảnh hưởng bởi yếu tố khác mình sử dụng mình sử dụng một mảng cho sẵn (Gồm 1419 phần tử).
Đầu tiên, hãy chạy tập lệnh trong phiên bản PHP hiện tại, phiên bản 7.4.
docker container run --rm -v $(pwd):/script/ php:7.4 php /script/bubble.php
Sau khi chạy nó 100 lần, thời gian trung bình mà tôi có là 0,10253500938416
giây. Cũng không tệ.
Bây giờ chúng ta thử chạy nó trong phiên bản PHP-8 mà không kích hoạt JIT.
docker container run --rm -v $(pwd):/script/ martinpham/php8:fpm-extra-alpine php /script/bubble.php
Một lần nữa, sau 100 lần chạy, mình có thời gian trung bình là 0,098223924636841
giây.
Thành thật mà nói, sự cải thiện không ấn tượng lắm.
Nhưng chúng ta đang ở đây để kiểm tra tính năng đáng mong chờ là JIT.
Bây giờ, hãy chạy lại và kích hoạt JiT.
docker container run --rm -v $(pwd):/script/ keinos/php8-jit php /script/bubble.php
Thời gian trung bình là 0,053637981414795
giây!
Quả thực là tính năng JIT quá tuyệt vời!
Đây là một tin tốt cho những tín đồ của PHP vốn lo lắng về tốc độ của ứng dụng.
Mặc dù con số trông có vẻ không lớn.
Chỉ cải thiện nhanh hơn 0.04458594322
giây
Nhưng nếu chúng ta xem nó theo phần trăm, chúng ta sẽ thấy nó rất lớn: 45,39%.
Con số cải thiện hiệu suất gần 50% so với PHP 7.4.
Và, bây giờ thử nghiệm
So sánh hiệu năng PHP-8 (kích hoạt JIT) với PHP 5.3
Mình muốn làm bài thử nghiệm này vì muốn xem lại khoảng 10 năm trước chúng ta đang làm việc với PHP như thế nào.
Bài thử nghiệm, vẫn tập lệnh PHP đã chuẩn bị, chạy trên phiên bản 5.3 (Phát hành năm 2009)
docker container run --rm -v $(pwd):/script/ php:5.3 php /script/bubble.php
Mất 0,64574003219604
giây.
Chậm hơn 0,5921020508
giây so với PHP-8.
Và chậm hơn -1.003,89% khi JIT được kích hoạt.
Kết quả thử nghiệm hiệu năng PHP-8 với các phiên bản PHP khác
Mình không thể tin là chúng ta đã làm việc với công nghệ rùa bò, sên bò này vào năm 2009.
Lưu ý!
Mình đã sử dụng thuật toán bumble sort và mảng thuần túy. Bạn hoàn toàn có thể thử nghiệm thuật toán khác.
Như mình đã nói ở trên, phiên bản PHP-8 mình sử dụng không phải là bản cuối cùng. Thế nên nó còn có thể cải thiện thêm.
Kết quả của mình gồm rất nhiều chữ số thập phân vì mình muốn chính xác nhất có thể.
Nhưng vẫn có những cái khác (Xem thêm trên Docker) nếu bạn muốn thử test một chút.
Và,
Mình đã làm các thử nghiệm trên một máy tính xách tay Linux Manjaro với chip Intel core i5, 3 GHz và 32 GB RAM.
Với cấu hình khác, những con số có thể thay đổi, nhưng mình chắc chắn tỷ lệ sẽ là tương tự nhau.
Bạn có mong chờ phiên bản PHP-8?
Phiên bản PHP-8 này với việc bổ sung tính năng JIT compiler sẽ hứa hẹn hiệu năng tốt hơn, tuyệt vời hơn nữa.
Phiên bản PHP 8 Sắp ra mắt cuối năm này với tính năng JIT
Nếu bạn đang làm việc thường xuyên với PHP thì mình tin rằng bạn còn mong chờ hơn mình.
Sẽ sớm thôi...
Còn nếu bạn đang chuẩn bị học PHP thì hãy tự tin lên. Chúng ta có một cộng đồng khổng lồ để duy trì, phát triển ngày một mạnh mẽ hơn.
Chúc bạn thành công!
Src: https://levelup.gitconnected.com/how-fast-is-php-8-going-to-be-f7fdc111cd6
---
HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI
Dạy học Lập trình chất lượng cao (Since 2002). Học làm Lập trình viên. Hành động ngay!
Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội
SĐT: 02435574074 - 0914939543 - 0353655150
Email: hello@niithanoi.edu.vn
Fanpage: https://facebook.com/NIIT.ICT/
#niit #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #java #php #python