Cómo configurar la herramienta de análisis PHP xhprof localmente
linuxMint + nginx1.4.6 + mysql5.5 + php5.5
¿Qué es xhprof?
XHProf es una herramienta de análisis de rendimiento de PHP en capas. Informa varias métricas a nivel de función y recuento de solicitudes, incluido el tiempo de bloqueo, el tiempo de CPU y el uso de memoria. La sobrecarga de una función se puede dividir en sobrecarga de la persona que llama y de la persona que llama, y la fase de recopilación de datos de XHProf registra la cantidad de llamadas y los arcos métricos incluidos rastreados en el gráfico de llamadas dinámicas del programa.
1. ¿Cómo instalar?
1. Descargue el último paquete de software xhprof
Descargar:
wget /get/xhprof-0.9.4.tgz
Solución Compresión:
tar -xvf xhprof-0.9.4.tgz
2. Compile e instale la biblioteca de extensiones pecl
cd xhprof-0.9.4/extension /
phpize
./configure
make
sudo make install
Después de una compilación exitosa, la extensión directorio de la biblioteca Aparecerá el archivo xhprof.so
La dirección del directorio de la biblioteca de extensión: /usr/lib/php5/20121212/
3. Modifique el archivo de configuración de php.
Porque mi computadora usa php-cgi, entonces necesito agregar una configuración.
cd /etc/php5/cgi/conf.d
Nuevo: archivo xhprof.ini
extensión=xhprof.so
4. Reinicie php, reinicie php-cgi
Reinicie php:
sudo service php5-fpm restart
Reinicie php-cgi
kill -9 17445
php-cgi -b 127.0.0.1:9000&
5. Copie xhprof al directorio raíz del sitio web
Por ejemplo, mi directorio raíz El directorio es /data/webroot/
Copia los dos directorios y listo:
cp -r xhprof_html/ /data/webroot/
cp -r xhprof_lib / /data/webroot/
6, verifique si xhprof está instalado correctamente en el entorno local
Nuevo archivo: info.php
echo phpinfo();
Si se puede buscar xhprof en la página, significa que xhprof se ha instalado correctamente:
xhprof
xhprof 0.9.4
CPU número 4
II.
Usar xhprof es relativamente sencillo.
Hay un archivo ejemplos/sample.php en el directorio de descarga
barra de funciones($x) {
if ($x > 0) {
bar($x - 1);
}
}
función foo( ) {
for ($idx = 0; $idx < 5; $idx++) {
bar($idx);
$x = strlen( " abc");
}
}
// Iniciar creación de perfiles
xhprof_enable();
//Ejecutar programa
foo();
//Detener el generador de perfiles
$xhprof_data = xhprof_disable();
// Muestra datos xhprof sin procesar. /...') ;
include_once $XHPROF_ROOT ."/xhprof_lib/utils/xhprof_lib.php" ;
include_once $XHPROF_ROOT ."/xhprof_lib/utils/xhprof_runs.php" ;
// Guarde los datos sin procesar para esta ejecución del generador de perfiles utilizando los valores predeterminados
// Implementación de iXHProfRuns. $xhprof_runs = new XHProfRuns_Default();
//Guardar la ejecución en el espacio de nombres "xhprof_foo"
$run_id = $xhprof_runs->save_run($ xhprof_data, "xhprof_foo") ;
echo "---------------\n".
"Supongamos que ha configurado una interfaz de usuario basada en http para\n ".
"XHProf está ubicado en una dirección determinada, puedes \n "ver su funcionamiento.
"--------------\n";
Al ver este archivo en un navegador se mostrará el siguiente código:
--------------- Suponiendo que haya configurado una interfaz de usuario basada en http para XHProf en una dirección, puede ver run atrun=562614ece2e2d&source=xhprof_foo ------ ---------
Al acceder a este punto se mostrarán varios archivos:
No se especificó ninguna ejecución de XHProf en la URL.
Operación existente:
562614ece2e2d.xhprof_foo.xhprof 2015-10-20 18:18:20
562614e0b76b2.xhprof_foo.xhprof 2015-10-20 18 :18:08
562614a33f6ec.xhprof_foo.xhprof 2015-10-20 18:17:07
5626146be4aaf.xhprof_foo.xhprof 2015-10-20 18:16:11 p>
5626146324cdd.xhprof_foo.xhprof 2015-10-20 18:16:03
Haga clic para ingresar uno:
Haga clic en [Ver gráfico de llamadas completo] y puede aparecer un error informado
p>
No se pudo ejecutar cmd: " dot - Tpng". stderr: `sh: 1: dot: not found '
Esto se debe a que la herramienta gráfica no está disponible. no instalado
sudo apt -get install graphviz
Una vez instalado, ábrelo nuevamente y verás la vista.
Sustantivo:
1.Tiempo Inclusivo: incluye el tiempo de ejecución de todas las subfunciones.
2. Tiempo exclusivo/tiempo propio: el tiempo de ejecución de la función en sí, excluyendo el tiempo de ejecución del subárbol.
3. Tiempo de pared: el tiempo invertido o tiempo del reloj de pared.
4. Tiempo de CPU: tiempo empleado por el usuario + tiempo empleado por el kernel
5 Incluyendo CPU: CPU ocupada por funciones y subárboles
6.
p>