¿Cómo utilizar PHP OPCache?
Se lanzó PHP 5.5 y presenta un nuevo módulo de almacenamiento en caché de código llamado OPCache, pero no parece haber ninguna documentación al respecto.
Entonces, ¿dónde está la documentación y cómo uso OPcache?
Instalación
OpCache se compila de forma predeterminada en PHP5.5+. Sin embargo, está deshabilitado de forma predeterminada. Para comenzar a usar OpCache en PHP5.5+, primero deberá habilitarlo. Para hacer esto tendrías que hacer lo siguiente.
Agregue la siguiente línea a su php.ini
:
zend_extension=/full/path/to/opcache.so (nix)
zend_extension=C:\path\to\php_opcache.dll (win)
Tenga en cuenta que cuando la ruta contiene espacios, debe colocarla entre comillas:
zend_extension="C:\Program Files\PHP5.5\ext\php_opcache.dll"
También tenga en cuenta que tendrá que utilizar la zend_extension
directiva en lugar de la directiva "normal" extension
porque afecta al motor Zend real (es decir, lo que ejecuta PHP).
Uso
Actualmente hay cuatro funciones que puedes utilizar:
opcache_get_configuration()
:
Devuelve una matriz que contiene la configuración utilizada actualmente que utiliza OpCache. Esto incluye todas las configuraciones ini, así como información de versión y archivos en la lista negra.
var_dump(opcache_get_configuration());
opcache_get_status()
:
Esto devolverá una matriz con información sobre el estado actual del caché. Esta información incluirá cosas como: el estado en el que se encuentra el caché (habilitado, reiniciando, lleno, etc.), el uso de la memoria, aciertos, errores y alguna información más útil. También contendrá los scripts almacenados en caché.
var_dump(opcache_get_status());
opcache_reset()
:
Restablece todo el caché. Lo que significa que todos los posibles scripts almacenados en caché se analizarán nuevamente en la próxima visita.
opcache_reset();
opcache_invalidate()
:
Invalida un script almacenado en caché específico. Lo que significa que el guión se analizará nuevamente en la próxima visita.
opcache_invalidate('/path/to/script/to/invalidate.php', true);
Mantenimiento e informes
Hay algunas GUI creadas para ayudar a mantener OpCache y generar informes útiles. Estas herramientas aprovechan las funciones anteriores.
OpCacheGUI
Descargo de responsabilidad Soy el autor de este proyecto.
Características:
- Estado de OpCache
- Configuración de OpCache
- Estadísticas de OpCache
- Restablecimiento de OpCache
- Descripción general de los scripts almacenados en caché
- Invalidación de scripts en caché
- Plurilingüe
- Soporte para dispositivos móviles
- Gráficos brillantes
Capturas de pantalla:
URL: https://github.com/PeeHaa/OpCacheGUI
estado de opcache
Características:
- Estado de OpCache
- Configuración de OpCache
- Estadísticas de OpCache
- Descripción general de los scripts almacenados en caché
- Fila india
Captura de pantalla:
URL: https://github.com/rlerdorf/opcache-status
opcache-gui
Características:
- Estado de OpCache
- Configuración de OpCache
- Estadísticas de OpCache
- Restablecimiento de OpCache
- Descripción general de los scripts almacenados en caché
- Invalidación de scripts en caché
- Actualización automática
Captura de pantalla:
URL: https://github.com/amnuts/opcache-gui
OPcache reemplaza a APC
Debido a que OPcache está diseñado para reemplazar el módulo APC, no es posible ejecutarlos en paralelo en PHP. Esto está bien para almacenar en caché el código de operación PHP, ya que ninguno de los dos afecta la forma en que se escribe el código.
Sin embargo, significa que si actualmente utiliza APC para almacenar otros datos (a través de la apc_store()
función), no podrá hacerlo si decide utilizar OPCache.
You will need to use another library such as either APCu or Yac which both store data in shared PHP memory, or switch to use something like memcached, which stores data in memory in a separate process to PHP.
Also, OPcache has no equivalent of the upload progress meter present in APC. Instead you should use the Session Upload Progress.
Settings for OPcache
The documentation for OPcache can be found here with all of the configuration options listed here. The recommended settings are:
; Sets how much memory to use
opcache.memory_consumption=128
;Sets how much memory should be used by OPcache for storing internal strings
;(e.g. classnames and the files they are contained in)
opcache.interned_strings_buffer=8
; The maximum number of files OPcache will cache
opcache.max_accelerated_files=4000
;How often (in seconds) to check file timestamps for changes to the shared
;memory storage allocation.
opcache.revalidate_freq=60
;If enabled, a fast shutdown sequence is used for the accelerated code
;The fast shutdown sequence doesn't free each allocated block, but lets
;the Zend Engine Memory Manager do the work.
opcache.fast_shutdown=1
;Enables the OPcache for the CLI version of PHP.
opcache.enable_cli=1
If you use any library or code that uses code annotations you must enable save comments:
opcache.save_comments=1
If disabled, all PHPDoc comments are dropped from the code to reduce the size of the optimized code. Disabling "Doc Comments" may break some existing applications and frameworks (e.g. Doctrine, ZF2, PHPUnit)