2011-02-16 24 views
25

estoy usando PHP con caché de APC activada:¿Cómo comprobar si el caché de código de operación de APC funciona bien en PHP?

apc.cache_by_default => On 
apc.enabled => On 
apc.ttl => 7200 

Ahora, ¿cómo puedo saber si se está utilizando la caché de código de operación 100%.

Por ejemplo, digamos que tengo este archivo PHP:

<?php 
echo "Hi there"; 
?> 

Ahora después de ejecutar este archivo, vamos a cambiar a echo "Bye there";

¿No debería echo "Hola", ya el TTL de 7200 segundos aún no ha terminado? ¿Estoy en lo cierto? Si es así, ¿por qué se escucha "Adiós"? Y si estoy equivocado, ¿cómo puedo obligarlo a usar el caché del código de operación incluso después de cambiar el archivo?

Respuesta

19

No creo que quieras hacerlo en producción, pero siempre puedes usar apc_cache_info().

function is_file_cached($file) { 
    $info = apc_cache_info(); 
    foreach ($info['cache_list'] as $cache) { 
     if ($cache['filename'] == $file) return true; 
    } 
    return false; 
} 

Tenga en cuenta que esto va a iterar sobre cada archivo que se almacena en caché la comprobación de la especificada, así que no es eficiente.

Y en cuanto a su pregunta específica, APC invalidará automáticamente la caché de un archivo cuando cambie. Entonces, cuando edita el archivo, APC lo detecta de manera silenciosa y sirve el nuevo archivo. Puede desactivar esto configurando apc.stat = 0.

9

Normalmente APC comprueba si el archivo solicitado se ha modificado desde que se almacenó en caché. Puede controlar esto con apc.stat.

19

La forma más sencilla que pude encontrar para decir si está trabajando APC era crear un nuevo archivo PHP que contiene este código ...

<pre><?php 
print_r(apc_cache_info()); 

Se vuelca el contenido de apc_cache_info() a la pantalla (sea cuidado, en un gran sitio en vivo esto podría ser lotes de datos!).

Cada vez que recarga este archivo PHP, debería ver num_hits aumentar, lo que significa que se utilizó el caché de código de operación. Una falla indica que APC tuvo que volver a compilar el archivo desde la fuente (generalmente se hace en cada cambio).


Para una mejor interfaz a esta información puede utilizar el archivo apc.php que viene con APC. He copiado esto a mi directorio de sitios web utilizando este comando de consola (sus ubicaciones de las carpetas pueden ser diferentes) ...

cp /usr/share/doc/php-apc/apc.php /usr/share/nginx/html/apc-stats.php 

Al ejecutar este archivo en su navegador le da colores agradables y gráficos!

Vea este enlace para más información:
http://www.electrictoolbox.com/apc-php-cache-information/

Cuestiones relacionadas