Tại sao PHP lại chậm? Vậy có những cách nào để tối ưu PHP?
Bài viết được sự cho phép của tác giả Lê Chí Dũng
Một thời gian làm việc trên PHP mình nhận thấy rằng về phương diện sử dụng là rất tốt và dễ dàng sử dụng viết sau cũng chạy kiểu dữ liệu tự do nhưng về perfomance thì thật sự chưa tốt. Chính vì thế sau một thời gian sử dụng sẽ thấy perfomance giảm rõ rệt, tuy nhiên ta cũng có một số cách để cải thiện vấn đề này.
Tại sao PHP lại chậm?
Để trả lời vấn đề này ta sẽ quay lại cơ chế hoạt động cơ bản của ngôn ngữ server này. PHP là ứng dụng execute từ PHP script sang ngôn ngữ máy (Assembly -> mã nhị phân) để xử lý mà trước khi đến execute thì phải qua bộ core của PHP để parse PHP script và compiler nửa chính vì qua nhiều bước để đến execute nên nếu quá nhiều xử lý thì sẽ rất chậm với lại web hiện nay thì lượng truy cập tăng rất nhanh nên chậm là điều khó tránh khỏi.
Vậy có những cách nào để tối ưu PHP?
1. Dùng kết hợp Cache OpCode (APC Cache) và Cache data (Memcached, Redis,…)
Cache Opcode điển hình là APC Cache, Opcache. Nó là cache file được tạo ra và lưu trên ổ đĩa, sau khi compile xong hiểu nôm na là thay thế 2 bước (Parse + Compile) thay vì phải qua 3 bước nặng nề để chuyển PHP thành ngôn ngữ máy để chạy thì mình chỉ tốn 2 bước nhẹ nhàn lấy cache ra chuyển thành ngôn ngữ máy để chạy. Nên tốc độ sẽ nhanh hơn đến 50%.
Cache data điển hình là Memche, memched, redis,… Nó là cache data được lưu trên Ram (bộ nhớ tạm) sau khi truy vấn đến Database. Nếu ai dùng PHP với database thì sẽ hiểu.
Tìm việc làm PHP đãi ngộ tốt trên TopDev
2. Dùng HHVM
HHVM được viết tắt từ “HipHop Virtual Machine” là một nền tảng xử lý PHP (tương tự như PHP-FPM) được phát triển bởi Facebook. HHVM giúp tăng tốc PHP nhờ sử dụng máy xử lý ảo dựa trên trình biên dịch just-in-time (JIT).
Cơ chế hoạt động của HHVM khác nhiều so với PHP-FPM.
Theo cơ chế của PHP-FPM (VM):
Parsing toàn bộ PHP script khủng lồ -> Compile toàn bộ PHP script đã parse -> Execute toàn bộ PHP script đã compile
=> Vì phải xử lý lượng lớn script nên tốc độ khá ì chờ xử lý lớn.
Theo cơ chết JIT trong HHVM:
Parsing từng PHP script nhỏ -> Compile từng PHP script đã parse -> Execute từng PHP script đã compile.
=> Vì xử lý lượng script nhỏ nên tốc độ nhanh.
Tuy nhiên ở PHP7 thì PHP7-FPM đã có nhiều cải tiến theo cơ chế HHVM nên tốc độ khá nhanh.
3. Dùng framework Yaf Framework hoặc Phalcon PHP Framework
Yaf Framework hoặc Phalcon là PHP Framework được viết bằng ngôn ngữ lập trình C, sau đó được biên dịch thành một PHP extension(thành phần mở rộng cho PHP).
Tổng kết
Từ các cách tối ưu trên bạn có thể phối hợp tất cả lại với nhau để tối ưu từ một hệ thống nền PHP tồi tàn chậm chạp trở nên nhanh như tia chóp.
Bài viết gốc được đăng tải tại lcdung.top
Có thể bạn quan tâm:
- AMP là gì? Vì sao AMP thật sự quan trọng với web performance?
- 30 tiện ích Chrome cho designer và dev
- 10 tuyệt kĩ từ trang web nhanh nhất thế giới (phần 1)
Xem ngay những tin đăng tuyển dụng IT mới nhất trên TopDev
- B BenQ RD Series – Dòng Màn Hình Lập Trình 4k+ Đầu Tiên Trên Thế Giới
- F Framework nào tốt nhất cho dự án của bạn? – Checklist chi tiết
- K Kinh nghiệm xử lý responsive table hiệu quả
- S Stackoverflow là gì? Bí kíp tận dụng Stack Overflow hiệu quả
- 7 7 kinh nghiệm hữu ích khi làm việc với GIT trong dự án
- B Bài tập Python từ cơ bản đến nâng cao (có lời giải)
- B Bảo mật API là gì? Một số nguyên tắc và kỹ thuật cần biết
- H Hướng dẫn cài đặt và tự học lập trình Python cơ bản từ A-Z
- C Chinh Phục Phân Tích Dữ Liệu Với Pandas Trong Python: Hướng Dẫn Từng Bước
- D Display CSS là gì? Cách khai báo và sử dụng thuộc tính display trong CSS