Tin tức và phân tích của tất cả các thiết bị di động

PHP 8 : trình biên dịch JIT và các tính năng mới

Phiên bản chính mới của PHP giới thiệu trình biên dịch JIT, sẽ cải thiện đáng kể hiệu suất.

Chia sẻ bài viết

Alexandra Patard / Đăng vào ngày 26 tháng 11 năm 2020 lúc 12:32 p.m.

Mã phụ trợ PHP

Được các nhà phát triển mong đợi, việc phát hành PHP 8 được khởi chiếu vào ngày 26 tháng 11. © andreyakaan147 – stock.adobe.com

Trong khi phiên bản trước của nó đã tối ưu hóa tốc độ thực thi, PHP 8 nhằm mục đích cải thiện hơn nữa hiệu suất. Vì đây là một phiên bản chính mới, bạn chắc chắn sẽ cần thực hiện các thay đổi đối với mã của mình để tận dụng tối đa những thay đổi do PHP mang lại 8mà còn để sửa một số cảnh báo hoặc lỗi nhất định liên quan đến các hàm không dùng nữa. Cần lưu ý rằng hầu hết các thay đổi vi phạm (các chức năng được sửa đổi) được thực hiện bởi PHP 8 đã bị xóa sổ trong các phiên bản 7.2, 7.3 và 7.4. Phiên bản chính mới này của ngôn ngữ lập trình mã nguồn mở đi kèm với một loạt các tính năng mới, bao gồm cả trình biên dịch JIT.

Khởi chạy trình biên dịch JIT với PHP 8

Tính mới chính được giới thiệu bởi PHP 8 là trình biên dịch JIT (Just in Time). PHP JIT bây giờ sẽ biên dịch các phần của mã trong khi nó đang chạy. Điều này sẽ hoạt động giống như một phiên bản mã được lưu trong bộ nhớ cache, điều này sẽ cải thiện hiệu suất đáng kể.

Chúng tôi đề xuất bao gồm một trình biên dịch JIT sang PHP 8 và nỗ lực bổ sung để tăng hiệu suất và tính dễ sử dụng của nó. (…) PHP JIT được triển khai như một phần của OPcache. Nó có thể được bật hoặc tắt vào lúc biên dịch và lúc chạy. Khi được bật, mã gốc của tệp PHP được lưu trữ trong một vùng bổ sung của bộ nhớ dùng chung OPcache và op_array → opcodes[].handler (s) duy trì các con trỏ tới các điểm nhập cho mã do trình biên dịch JIT tạo ra. Cách tiếp cận này không yêu cầu sửa đổi động cơ. (…) PHP JIT không giới thiệu một biểu diễn trung gian. Nó tạo mã gốc trực tiếp từ mã bytecode của PHP và thông tin được thu thập bởi khung phân tích tĩnh SSA. Mã được tạo riêng cho từng lệnh PHP, chỉ định Dmitry Stogov và Zeev Suraski trong đề xuất RFC của họ.

Với trình biên dịch JIT, PHP 8 đi vào bánh răng hàng đầu. Một sự cải thiện đáng chú ý trong việc tăng hiệu suất đã được quan sát thấy trong các thử nghiệm, với kết quả nhanh hơn tới bốn lần và sử dụng bộ nhớ tốt hơn, đặc biệt đối với các tác vụ yêu cầu số lượng lớn tài nguyên CPU. Nhược điểm duy nhất: trình biên dịch JIT không nên có tác động đáng kể đến hiệu suất của WordPress, có phiên bản 5.6 lên lịch cho 8 Tháng 12 sẽ hỗ trợ PHP 8, hoặc các ứng dụng web tương tự. Bằng cách tăng mức độ phức tạp của nó, phiên bản mới này cũng có thể làm tăng nguy cơ xuất hiện các loại lỗi mới và chi phí duy trì chúng.

Các tính năng mới của PHP 8

Ngoài trình biên dịch JIT, PHP 8 mang đến một loạt các tính năng mới, sẽ làm cho nó hoạt động hiệu quả hơn. Trong số những điểm mới lạ này, chúng ta có thể lưu ý:

Các loại công đoàn 2.0 : để xác định các kiểu trắc nghiệm cho thuộc tính của một lớp, thuộc tính v2: để thêm siêu dữ liệu để chỉ định thuộc tính của đối tượng, phần tử hoặc tệp, WeakMaps: để tiết kiệm tài nguyên khi thao tác với đối tượng, dấu phẩy ở cuối danh sách tham số, bao gồm các hàm , các phương thức và các bao đóng, Biểu thức ném: để chuyển câu lệnh này thành một biểu thức có thể được sử dụng trong ngữ cảnh mà chúng được cho phép, Cú pháp lớp mở rộng cho các đối tượng: để có thể truy xuất tên lớp của một đối tượng nhất định. Nếu bạn muốn tận dụng các tính năng mới do PHP mang lại 8, bạn có thể thử phiên bản chính mới này trước khi áp dụng nó một cách dứt khoát. Trong mọi trường hợp, bạn nên giữ phiên bản PHP cập nhật, ngay cả khi đó là phiên bản cũ hơn.