venenux/docs/others-infodocs-details-opcache-acp-and-apcu-for-php-es.md

3.2 KiB

others-infodocs-details-opcache-acp-and-apcu-for-php.png

El APC el APCu y el Opcache

  • APC es cache para codigo de operaciones y como datos globales
  • APCu es cache solo para datos globales
  • OPcache es cache solo para codigo de operaciones

Vista general de la cache en el php

Debido a la entrada de OPcache el modulo APC es hoy deprecado, y con los servicios de redis y memcache el modulo APCu puede sea deprecado en el futuro.

APC es el inicio de precompilacion de datos+scripts en el servidor, algo similar a lo que hace tomcat con los jsp, o lo que hace luajit con lua.

OPcache aumenta el rendimiento de PHP mediante cache (guardado rapido) de conversion del script php a codigo precompilado, todo en la memoria compartida. Este se inlcuye en php 5.5 en adelante, y con PECL en versiones anteriores.

APCu es APC separado del cache de precompilado de operaciones (en un esfuerzo de no sobreescribir las funiones de Opcache). APCu dado esto puede ofrecer una capa de compatibilidad de APC (APCu-BC).

APCu-BC fue creado a partir de php 7, apcu en php 5 tiene capa de compatibilidad, cuando fue removida esta se creo en un paquete aparte.

Puedo tener los tres? necsito APC, APCu o Opcache?

Cuando se tiene los tres instalados se puede ver dos tipos de problemas, el primero es lentitud debido a sobre precompilacion (apc esta haciendo el mismo trabajo de los otros dos que tambien realizaron el mismo trabajo etc), y el segundo y adicional debido a que apcu tiene una capa de compatibilidad se muestra el error "apc fue ya cargado" (Module 'apc' already loaded), porque APCu ya lo provee mediante la capa de compatibiliad diciendo que ya fue cargado.

Si se tiene Opcache y APCu se debe desactivar APC. Si en su servidor tiene php 5.3 o 5.2 y tiene apc listo y funcionando, no necesita complicarse con la combinacion APCu+Opache.

Como es en Debian?

Para debian viejos (php 5.4) se instala simplemente php5-acp, pero si quiere lo moderno instale (si esta) php 5.4 de dotdeb y php5-apcu asegurando de no tener el php5-apc Para debian nuevos (php7+) se instala solamente php-apcu y el opcache ya esta activado

Como es en alpine?

Aqui en alpine 3.4 al 3.8 hay que habilitar los repos de comunidad, instalar php7-apcu y habilitarlo, en alpine 3.10 esta el php7-pecl-apcu para instalar. Parece que no hay capa de compatibilidad APC para el APCu en Alpine php.

Conclusiones

En conclusion.. actualmente APC es sustituido por la combinacion de Opcache (Que se incluye en php7+) junto con el modulo APCu habilitado.

Vea tambien