Làm sao để Enable OPCache trong Xampp

Chúng ta đã từng nghe qua 2 cụm từ: “Biên dịch” và “Thông dịch”. Và hầu như ai cũng biết là các chương trình dạng “biên dịch” sẽ chạy nhanh hơn so với các chương trình dạng “thông dịch”, nhưng tại sao nó lại như vậy và có cách nào để cải thiện vấn đề này không.

Mỗi request đến file PHP sẽ được tiến hành xử lý thông qua 4 bước trước khi trả kết quả về cho người dùng. Quá trình này là cần thiết cho việc thực thi lệnh lần đầu, nhưng thực sự không cần thiết cho những lần gọi sau đó, vì quá trình vẫn thực hiện đầy đủ 4 bước, dù file PHP không hề có sự thay đổi. Điều này chính là nguyên nhân chính dẫn tới việc “Thông dịch” chậm hơn nhiều so với “Biên dịch”.

Sau khi được cache lại, quá trình thực hiện chỉ còn thông qua 2 bước là quét dữ liệu từ cache và thực thi lệnh. Như vậy nhanh hơn rất nhiều so với trước đó. Và theo đó, trong lần thực thi đầu tiên, ngoài việc chạy 4 bước như trên, thì code sẽ được lưu thêm vào cache để tăng tốc cho lần sau.

Opcode Caching là một thành phần mở rộng (extension) của PHP để làm gia tăng hiệu suất xử lý của nó bằng cách lưu lại kết quả trả về cho lần xử lý đầu tiên và xử dụng nó cho các lần gửi truy vấn tiếp theo để tránh việc một đoạn code phải xử lý nhiều lần mà trả về cùng 1 kết quả. Nhưng dữ liệu cache này sẽ được lưu vào RAM.

Opcode Caching hoạt động tốt hay không phụ thuộc vào Opcache System (một hệ thống tiền xử lý của phương thức này), trong danh sách Opcache System thì mình biết được có một số cái tên sau dùng khá tốt:

  • Zend Opcache – Sử dụng tốt hầu hết trên mọi website, không cần cấu hình nhiều, dễ cài đặt.
  • APC – Một extension được xử dụng khá phổ biến trên các phiên bản PHP 5.4 và PHP 5.5, ưu điểm là khả năng tùy biến cao, bù lại nó hơi khó cấu hình.
  • XCache – Cũng là một sự thay thế khá tốt cho APC nhưng XCache dễ cấu hình hơn, sử dụng ít RAM hơn APC.

Ngoài ra còn một số system khác như eAccelerator, WinCache nhưng nó đều đã rất củ kỹ, không nên dùng ở thời điểm hiện tại.

Ưu điểm

  • Tiết kiệm CPU và tốc độ xử lý truy vấn PHP.

Nhược điểm

  • Hầu như chỉ sử dụng được ở server riêng – nơi bạn có thể tự cài software.
  • Chỉ hoạt động với PHP 5.4 trở lên.
  • Hơi tốn RAM vì nó được dùng để lưu cache.
  • APC không hoạt động nếu bạn có cài thêm PHP Handler là suPHP. Và mỗi lần sửa code PHP, bạn phải tự xóa cache.

Cài đặt trên Xampp:

Mở file php.ini và thêm đoạn sau:

zend_extension=php_opcache.dll

[opcache]
; Determines if Zend OPCache is enabled
opcache.enable=1

; Determines if Zend OPCache is enabled for the CLI version of PHP
opcache.enable_cli=0

; The OPcache shared memory storage size.
opcache.memory_consumption=64

; The amount of memory for interned strings in Mbytes.
opcache.interned_strings_buffer=4