Si bien sabemos, PHP es un lenguaje de programación interpretado, lo cual significa que cada vez que se ejecuta un archivo PHP, primero deberá compilarse. Si un archivo no cambia con frecuencia, resulta absurdo perder el tiempo compilando una y otra vez un archivo que no ha cambiado.
Por ESE Motivo, Hace MUCHOS Jahr surgieron systems caché de como APC Que guardan los Archivos compilados y los utilizan MIENTRAS el archivo original, sin Cambie. Si Activas APC es Fácil Multiplicar el RENDIMIENTO de la Aplicación de Entre 2 y 10 Veces pecan Tocar Una Sola Línea de Código.
La versión 5.5 de PHP introducir Una Llamada caché nueva OPcache y Que esta destinada a reemplazar un APC. En Realidad, OPcache Es El Nuevo Nombre del Producto Zend Optimizer + Que la Empresa Zend LLEVA Jahr utilizando en sus Información Servicios. ESTO SIGNIFICA OPcache Que Es Un Producto maduro y probado en miles de Servidores de Todo tipo. Ademas, OPcache Es Un Hasta 20% Rápido Más Que APC en los muchas Pruebas de RENDIMIENTO estafa Aplicaciones PHP Típicas ( ver Pruebas de RENDIMIENTO ).
Instalando la extensión OPcache
Si utilizas PHP 5.5, OPcache ya esta Instalado y configurado. Si utilizas PHP 5.2, 5.3 o 5.4, PUEDES emplear el Paquete ZendOpcache de PECL Correspondiente a tu version.
Si ya la Tienes instalada y no te aparece Dentro De Las Extensiones Activadas, envíale Que Tengas Que AÑADIR o descomentar la siguiente línea ahora en tu archivo
php.ini
:
; en Servidores Linux y Maczend_extension = /ruta/hasta/la/librería/opcache.so; en Servidores de Ventanaszend_extension = C: \ ruta \ Hasta \ el \ archivo \ php_opcache.dll
Si ADEMÁS de OPcache utilizas la extensión Xdebug, Asegúrate de cargar Primero la extensión OPcache Dentro de tu archivo de configuracion.
Configurando la extensión OPcache
opcache.enable = 1opcache.enable_cli = 1opcache.memory_consumption = 128opcache.interned_strings_buffer = 8opcache.max_accelerated_files = 4000opcache.revalidate_freq = 60opcache.fast_shutdown = 1
La siguiente tabla Explica Cada uña de ESTAS OPCIONES Y Also indica do valor Por Defecto:
Opción | Valor Inicial | Descripción |
---|---|---|
opcache.enable | 1 | Activa la extensión. Cambia do valor a 0 Desactivar OPcache párrafo |
opcache.enable_cli | 0 | Activa OPcache CUANDO SE ejecuta PHP en La Línea de Comandos |
opcache.memory_consumption | 64 | CANTIDAD de memoria en MB Que Puede del Consumir la caché de OPcache |
opcache.interned_strings_buffer | 4 | CANTIDAD de memoria en MB utilizada párr guardar cadenas de Texto Que se pueden Calcular En Tiempo de compilación en Vez de ejecución resuelve |
opcache.max_accelerated_files | 2000 | Número Máximo de Archivos Que se compilan. El Dębe valor ESTAR Entre 200 y 100.000 |
opcache.revalidate_freq | 2 | Cada Cuantos Segundos sí comprueba si la ONU archivo Compilado ha Cambiado. Si el valor es 0 , sí comprueba en cada en PETICIÓN. Desactivar Para this comprobación, utiliza la Opción opcache.validate_timestamps
|
opcache.fast_shutdown | 0 | Sí se activa, la extensión OPcache no libera la memoria Ocupada, Sino Que delega ESA tarea en el gestor de memoria del motor Zend de PHP. Mejora Activar this Opción EL RENDIMIENTO, Pero la memoria en sí reserva Durante Más Tiempo |
Si comparas la tabla anterior (Que Muestra los Valores Por Defecto de OPcache) la de la estafa configuracion Que recomiendan en el manual de oficial de PHP (mostrada anteriormente), complejas Verás Que la configuracion Recomendada es Más Apropiada párr Aplicaciones PHP, COMO EJEMPLO Por las Que utilizan marcos de Como Symfony y Zend.
Al Margen de las Recomendaciones Anteriores, La Mejor configuracion del siempre es La que se ajusta a tu Mejor Servidor y tus applications. No Olvides ProBar Diferentes Valores párr Cada Opción de configuracion y Analiza las Mejoras o Perdidas de RENDIMIENTO Que consigues estafa Cada Cambio. ASI conseguirás Llegar a la configuracion párrafo ideales tu Servidor.
Configuracion Avanzada
La extensión OPcache Tiene Muchas Otras options Que PUEDES Configurar. Para aquellos Programadores Que utilizan marcos de Como Symfony y Zend o Librerías de COMO Doctrine2, la Opción
opcache.save_comments
es REALMENTE Importante.
El valor Por Defecto of this Opción es
1
, Lo Que SIGNIFICA Que se mantienen de Todos los comentarios del Código Fuente de los Archivos Que se compilan. Si Cambias do valor a 0
, de Todos los comentarios en sí eliminan, Lo Que Mejora el RENDIMIENTO y reducir significativamente EL Campanadas De Los Archivos compilados.
El Problema es Que Si eliminas el los comentarios, es Posible Que Estés Rompiendo el Código de Symfony, Doctrina, PHPUnit y los muchas Otras Aplicaciones Que utilizan UNOS comentarios Especiales Llamados Anotaciones párr Modificar el comportamiento del Código.
Asi Que si utilizas Symfony, Doctrina, Zend Framework o PHPUnit, Asegúrate de Tener la Opción
opcache.save_comments = 1
o ma Aplicación dejará de funcionar .
Otra Opción Muy importante es
opcache.enable_file_override
, valor Cuyo inical es 0
. Si Cambias do valor un 1
, Cada Vez Que en tu application ejecutes Las Funciones file_exists ()
, is_file ()
y is_readable ()
, sí comprueba si el archivo Primero Que pasas de como un Argumento las Funciones Anteriores ha Sido cacheado. This comprobación envíale mejorar el RENDIMIENTO, Pero un Cambio corres el Riesgo de ESTAR comprobando Archivos cacheados Que ya no existen o de han Cambiado.
La siguiente tabla Recoge el resto de options Disponibles en OPcache. A Menos Que sepas Muy bien Lo Que Estás Haciendo, Es Mejor Que No modifiques El Valor de ESTAS OPCIONES:
Opción | Valor Inicial | Descripción |
---|---|---|
opcache.max_wasted_percentage | 5 | PORCENTAJE Máximo de memoria desperdiciada Que se Tolera los antes de Forzar reinicio de las Naciones Unidas de OPcache |
opcache.use_cwd | 1 | Sí se activa, OPcache ANADE el Directorio al Nombre de archivo Cada Que cachea, he aquí Por Que sí reducen las Posibles Colisiones Entre Archivos Con El Mismo Nombre |
opcache.validate_timestamps | 1 | Sí se activa, los Archivos cacheados sí comprueban periodicamente to see si de han Cambiado. Sí se Desactiva el RENDIMIENTO Aumenta muchísmo, Pero un CAMBIO Debes Reiniciar el Servidor web o Borrar la caché de un archivo de la ONU mano Cada Vez Que cambies |
opcache.revalidate_path | 0 | Los Archivos cacheados Con El Mismo Nombre y El Mismo include_path sí reutilizan (Puede del Haber Problemas con Archivos Con El Mismo Nombre Pero Distinta Localización) |
opcache.load_comments | 1 | Sí se Desactiva, los comentarios del Código fuente No Se Cargan, aunque los Archivos cacheados mantengan organismos europeos de normalización comentarios |
opcache.optimization_level | 0xffffffff | Su FORMATO Es El De Una Máscara de bits de Que indica Cuales de las Diferentes Pasadas de OPcache sí ejecutan |
opcache.inherited_hack | 1 | Opción Válida Solo para PHP 5.2 y qu evita ONU bug Relacionado Con La herencia de Clases |
opcache.dups_fix | 0 | Activa this Opción Si Se Producen Errores de Tipo "No se puede redeclare class" |
opcache.blacklist_filename | '' | Ruta Donde sí ENCUENTRA EL ARCHIVO índica Que Archivos Que No Se Deben cachear (. PUEDES Indicar Directorios Enteros e inclusó Nombres de Archivos Con asteriscos Ej: * Repositroy.php )
|
opcache.max_file_size | 0 | Máximo La tortura de archivo en bytes Que Se Puede guardar en la caché. El valor 0 indica Que No Límites de heno |
opcache.consistency_checks | 0 | Si es Distinto de 0 la Consistencia de la caché en sí comprueba Cada N Peticiones, Donde N es el valor of this Opción |
opcache.force_restart_timeout | 180 | Duranción en Segundos del Tiempo ¡Que se Espera Hasta Reiniciar OPcache en Caso De Que La Cache no Responda |
opcache.error_log | '' | Ruta del archivo Donde sí registrarán los Errores Que se produzcan |
opcache.log_verbosity_level | 1 | Máximo Nivel de Errores Que se guardan en el registro. Por Defecto, Solamente los Errores de Tipo fatal y error
|
opcache.preferred_memory_model | '' | No toques this Opción si No Sabes Lo Que Estás Haciendo. This Opción te permite ELEGIR el Tipo de memoria a utilizar Entre los Siguientes Valores: mmap , SHM , POSIX y Win32
|
opcache.protect_memory | 0 | Opción Reservada párrafo la depuración interna de OPcache |
opcache.mmap_base | nula | Utilizada Solamente párr Indicar la base de de los SEGMENTOS de memoria Compartida en Ventanas |
Utilizando la configuracion de APC en OPcache
Si Estás Acostumbrado a utilizar la caché de APC, la siguiente tabla Muestra el Equivalente en OPcache de las OPCIONES de configuracion Más Habituales de APC:
APC | OPcache |
---|---|
apc.enabled = 1 | opcache.enable = 1 |
apc.shm_segments = 1 y apc.shm_size = 128M
| opcache.memory_consumption = 128 |
apc.num_files_hint = 4000 | opcache.max_accelerated_files = 4000 |
apc.stat = 1 | opcache.validate_timestamps = 1 |
apc.max_file_size = 2M | opcache.max_file_size = 2 |
apc.filters = "/ var / www / apc.php" | opcache.blacklist_filename = "/ var / www / opcache.txt" |
Funciones de OPcache
La extensión OPcache INCLUYE DOS Funciones Muy Útiles CUANDO SE utiliza la caché en el Servidor de Producción. La Primera FUNCIÓN es
opcache_reset ()
Que no admite parametros y devuelve COMO RESULTADO booleano valor un. El Propósito of this FUNCIÓN es Borrar Toda La caché de OPcache (Equivale a al FUNCIÓN apc_clear_cache ()
).
Si utilizas la Opción
opcache.validate_timestamps = 0
e instalas Una nueva version de tu Aplicación en el Servidor, el los Cambios No Se tendran baño CUENTA HASTA de Que caduquen del los Archivos cacheados. La Solución Más drástica Suele Ser Reiniciar el Servidor, Pero Con la Función opcache_reset ()
PUEDES Obtener el Mismo RESULTADO de forma Más elegante.
La otra Opción Definida Por OPcache es
opcache_invalidate ()
, Que No borra Toda La memoria caché sino-des Único archivo cacheado:
// Borra el archivo 'index.php' de la caché Solamente si es Más // nuevo Que el archivo 'index.php' cacheado opcache_invalidate ( 'index.php' ) ; // Borra el archivo 'index.php' de la caché (Importar pecado // su fecha de modificacion) opcache_invalidate ( 'index.php' , true ) ;
Fuente:enlace
Si Quieres Seguir Aprendiendo con Nosotros, PUEDES ingresar a NuestrosInformación.
No hay comentarios:
Publicar un comentario