Pregunta

La optimización del código PHP a través de la evaluación comparativa en tiempo de ejecución es sencilla. Lleve un registro de las horas $ start y $ end a través de microtime () alrededor de un bloque de código: no estoy buscando una respuesta que implique el uso de microtime ().

Lo que me gustaría hacer es medir el tiempo que le toma a PHP prepararse para ejecutar su código: código-parse / op-code-tree-building time. Mi razonamiento es que, si bien es fácil incluir () todas las clases que podría necesitar para cada página que tiene en un sitio, la sobrecarga de la CPU no puede ser "gratuita". Me gustaría saber cómo "caro" el tiempo de análisis es realmente.

Supongo que una memoria caché de código de operación, como APC, no forma parte del escenario.

¿Sería correcto que la medición del tiempo de análisis en PHP sea algo que tendría que tener lugar en mod_php?

EDITAR : si es posible, sería útil tener en cuenta el uso de $ _SERVER ['DOCUMENT_ROOT'] en el código. Las soluciones de comando pueden tomar un poco de tiempo para hacer esto (pero aún así son respuestas valiosas).

¿Fue útil?

Solución

Sí Hay.

<?php return; rest of the code ?>

o

<?php whole code; $%^parse erorr!@! ?>

y luego compare el tiempo de ejecución del script vacío

time php empty.php

con el tiempo que lleva ejecutar (o fallar) el script regular con las adiciones que he mencionado anteriormente:

time php test.php

He usado este método en archivos grandes y PHP5.3 en Core2Duo 2.4Ghz puede analizar entre 1.5 y 4.5MB de código PHP por segundo (depende mucho de la complejidad del código, por supuesto).

Otros consejos

Para el nivel de análisis detallado que está buscando, parece que implementar Xdebug ( http://xdebug.org/ ) le daría la mejor información sin tener que cortar su código en partes segmentadas.

Un método podría ser cronometrar la ejecución del script desde la línea de comandos.

En Linux, por ejemplo:

$ time php5 -r 'echo "Hello world";'
Hello world
real    0m1.565s
user    0m0.036s
sys     0m0.024s

¿Ayuda eso? Tal vez sea útil para descubrir tiempos relativos entre diferentes scripts, pero puede no ser indicativo del tiempo empleado en el módulo Apache

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top