¿Cuál es la mejor manera para mí de probar el rendimiento de mi código PHP?Prueba de rendimiento del código PHP
Respuesta
XDebug (véase la respuesta de Neil Aitken) es útil para identificar problemas de rendimiento pobre en el código PHP - pero sólo se puede utilizar en condiciones muy controladas y restrictivas - no menos importante es difícil de ver lo concurency efecto que tiene sobre la actuación. Mientras que Patrick MARIE sugiere, puede utilizar ab: no es un enfoque viable si la transacción que está tratando de medir abarca más páginas que páginas (por ejemplo, iniciar sesión y crear sesión, agregar un producto aleatorio a la cesta, repetir añadir producto aleatorio N veces ...).
AFAIK no existe una solución basada en PHP para las interacciones de grabación/secuencia de comandos, pero hay Perl + WWW: Mechanize + HTTP: grabadora. O, si es extremadamente rico, podría comprar productos HP de compilación de carga.
Pero es muy difícil implementar pruebas que sean verdaderamente representativas de cómo se usa la aplicación, y el rendimiento de la aplicación (al menos las partes relacionadas con los datos) variará con el tiempo, por lo que debe generar métricas de rendimiento adecuadas en tu codigo.
... y aun así, el tiempo que tarda PHP en generar una página HTML es solo una pequeña parte de la historia de cuánto tarda una página en mostrarse en el navegador.
HTH
C.
Muy bien puesto, es difícil medir cómo su aplicación puede funcionar bajo una carga pesada. Puede usar Selenium en lugar de Mechanize para automatizar navegadores, pero hasta donde yo sé, no está diseñado para pruebas de carga. –
¿por qué mencionar hp loadrunner pero no apache jmeter? –
Puede usar microtime() para medir el tiempo de ejecución de su código. Aquí es un fragmento de código básico para que:
$start_timestamp = microtime(true);
...
---your Code---
...
$end_timestamp = microtime(true);
$duration = $end_timestamp - $start_timestamp;
error_log("Execution took ".$duration." milliseconds.");
time() devuelve segundos, no milisegundos. Creo que estás buscando algo como [microtime()] (http://ca3.php.net/manual/en/function.microtime.php) –
Siempre obtengo números negativos haciendo esto. ¿Mi programa es más rápido que el tiempo mismo? – Ray
@Raymond: es posible que haya probado la posibilidad de que las partículas se muevan más rápido que la luz :) – Thariama
Debe considerar el uso ab (apache benchmark tool) para ejecutar un gran número de consultas y xhprof al perfil/analizar su código. En mi opinión, estos son solo los conceptos básicos pero dan excelentes resultados.
xDebug tiene un generador de perfiles incorporado, una vez configurado descargará algunos archivos que se pueden leer con un programa como kcachegrind o WinCacheGrind
Esto entonces le permitirá ver las todas las llamadas de función, llamada media y acumulativo veces y el tiempo total de ejecución del script. Muy útil para encontrar cuellos de botella en tu código.
Si desea probar una parte específica del código, considere utilizar el paquete Benchmark de la biblioteca PHP PEAR.
$timer = new Benchmark_Timer();
$timer->start();
// Code to test here
$timer->stop();
$timer->display();
Como una nueva mirada a un viejo problema, considere el uso de una herramienta comercial como NewRelic para ayudar en la creación de perfiles. Personalmente los uso para obtener una pequeña muestra de datos, ya sea gratis o a precio nominal. Sin embargo, aprovecho al máximo su prueba de producto con todas las funciones.
También podría usar APD (depurador avanzado de PHP).
Es bastante fácil hacerlo funcionar.
Hay un buen tutorial cómo compilar APD y crea perfiles con él: http://martinsikora.com/compiling-apd-for-php-54
- 1. Determinar las consecuencias de rendimiento del código PHP
- 2. Prueba del rendimiento de IO en Linux
- 3. Herramienta de rendimiento/prueba del servidor web
- 4. jQuery - Mejora del rendimiento/Código
- 5. rendimiento de finalización del código Delphi
- 6. ¿Cómo se prueba el rendimiento del código entre versiones de lanzamiento de software?
- 7. Prueba del rendimiento del proyecto Java en Eclipse usando VisualJVM
- 8. Cobertura del código y prueba unitaria del código Python
- 9. Ejemplos de práctica Prueba del código C#
- 10. rendimiento de prueba de un sitio web
- 11. Mejorando el rendimiento del código C
- 12. Rendimiento frente a la calidad del código
- 13. PHP include(): Tamaño y rendimiento del archivo
- 14. prueba de competencia PHP?
- 15. Prueba de unidad Código de Javascript Incrustado dentro de PHP
- 16. Python: prueba de rendimiento, asegurando la limpieza
- 17. Averigüe dónde se ralentiza su código PHP (problema de rendimiento)
- 18. Finalización del código de NetBeans PHP
- 19. ¿Qué código de operación de código PHP debo usar para mejorar el rendimiento?
- 20. Utilidades de prueba de rendimiento para C++
- 21. SQL de prueba de rendimiento consultas
- 22. que tiene un mejor rendimiento:!! Prueba = null o nula = prueba
- 23. Prueba de rendimiento Varias bases de datos
- 24. Verdadero rendimiento de código inseguro
- 25. poner a prueba la ganancia de rendimiento de compresión de código JavaScript
- 26. ¿Prueba de rendimiento para páginas ASP clásicas?
- 27. Medición de la capacidad de prueba del código de C#
- 28. Prueba de atributos dentro del código de otros atributos
- 29. PHP __autoload rendimiento
- 30. Uso sobrecargado del rendimiento rendimiento
especifique si desea probar un bloque de código PHP, un bloque de código que utiliza la base de datos o el rendimiento general de su sitio bajo carga. Los tres casos de uso tienen sus propias herramientas, que se reflejan en las respuestas aquí. – chiborg
Aquí hay [una gran respuesta] (http://stackoverflow.com/a/1202746/4233593) –