¿Qué es un caché de código de bytes y cómo puedo usar uno en PHP?

4 minutos de lectura

avatar de usuario
Sourav

Busqué en la Web y descubrí que el código PHP se puede compilar para aumentar el rendimiento. ¿Pero como hacerlo? ¿Puedo compilar código PHP tanto procedimental como orientado a objetos?

avatar de usuario
Pascal MARTÍN

La idea básica, al ejecutar un script PHP es en dos pasos:

  • Primero: el código PHP, escrito en texto plano, es compilado a códigos de operación
  • Entonces: esos se ejecutan códigos de operación.

Cuando tiene un script PHP, siempre que no se modifique, los códigos de operación siempre serán los mismos; por lo tanto, hacer la fase de compilación cada vez que se ejecuta el script es una especie de pérdida de tiempo de CPU.

Para evitar esa compilación redundante, hay algún mecanismo de almacenamiento en caché de código de operación que puede usar.

Una vez que el script PHP se haya compilado en códigos de operación, estos se guardarán en la RAM y se usarán directamente desde la memoria la próxima vez que se ejecute el script; evitando que la compilación se haga una y otra vez.

La caché de código de operación que más se usa es APC: caché de PHP alternativa :

Una vez que APC se ha instalado y configurado correctamente, no hay nada que deba modificar en su código PHP: APC almacenará en caché los códigos de operación y eso es todo: el proceso es totalmente invisible para su aplicación.

  • por lo tanto, es un escenario completamente diferente al de C / C ++ … ¡donde escribimos el código en el archivo .c y lo compilamos en .exe y ejecutamos ese archivo exe! que tal este caso

    – Sourav

    10 de abril de 2011 a las 16:07

  • Sí, es una idea completamente diferente: C/C++ son lenguajes compilados, mientras que PHP es más del tipo interpretado ;;; si desea compilar su código PHP en algún tipo de ejecutable, puede echar un vistazo a HipHop ( github.com/facebook/hiphop-php/wiki ) — pero tenga en cuenta que esto generalmente no es del todo necesario (En realidad, nunca he visto a nadie usar HipHop en un servidor de producción, excepto Facebook, por supuesto… ¿Pero es tan importante su sitio web?)

    – Pascal MARTÍN

    10 de abril de 2011 a las 16:09


  • no, nunca me gusta Facebook :), pero ¿puedo usar APC en mi código PHP de 13000 líneas que está escrito en estilo procedimental?

    – Sourav

    10 de abril de 2011 a las 16:14

  • sería mejor si solo das un ejemplo simple sobre cómo usar APC

    – Sourav

    10 de abril de 2011 a las 16:14

  • Sí, puedes usar APC (tu código no importa) ; simplemente instale la extensión, edite su php.ini para habilitarlo y configurarlo; reiniciar Apache para que se tenga en cuenta la modificación; y listo; no tienes nada más que hacer.

    – Pascal MARTÍN

    10 de abril de 2011 a las 16:21

avatar de usuario
Tu sentido común

¿Pero como hacerlo?

Fácil.
Antes que nada tienes que hacer algunos perfilado para asegurarse de que el análisis de código sea un cuello de botella de su sitio, y todos los demás obvios, como el almacenamiento de datos no optimizado, los algoritmos lentos, la extracción de datos y las llamadas de red, estén optimizados.

La forma más fácil de determinar si necesita caché de código de operación o no sería simplemente poner esta línea en la parte superior de su página más utilizada

$timer_start = microtime(1);

y esta línea al final:

echo "Generated in ".(round((microtime(1) - $timer_start),4))." sec.";

si el tiempo es mas que 0.01tiene otras cosas para optimizar primero, porque no notará ningún efecto del caché de código de operación.

  • ¡Por favor explique un poco más, y sería mejor si puede dar algo de código PHP!

    – Sourav

    10 de abril de 2011 a las 16:22

  • Es una larga historia. En resumen, debe estar seguro de si realmente necesita el código de operación. El 99,99% de los sitios en el mundo no lo usan porque simplemente no les sirve.

    – Tu sentido común

    10 de abril de 2011 a las 16:24


  • Esa es una declaración bastante audaz. La mayoría de las personas no usan APC, simplemente porque tienen alojamiento compartido y, por lo tanto, no poder úsalo Pero, que yo sepa, casi todos los usuarios de hosting virtual o dedicado usan APC. Hay muchas cosas que no mejorarán el rendimiento de sus sitios, pero APC definitivamente lo hace (mediblemente, solo Google).

    – NikiC

    10 de abril de 2011 a las 16:31


¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad