¿Un “generador de perfiles con visualización” para PHP con “visualización de seguimiento completo”?

Actualmente, estoy usando xdebug profiler & KCacheGrind . Pero el formato GallGrind no almacena rastros de llamadas completos, solo los rastros de llamadas hijo primarias (mira Kcachegrind / callgrind es inexacto para las funciones del despachador, para lo que estoy hablando).

¿Hay un generador de perfiles con visualización con visualización de rastreo completo disponible para PHP?

He mirado

  • PHP Quick Profiler : Pero, requiere demasiado código para ser agregado y sin visualización.
  • phpCallGraph : su versión más reciente ha sido modificada el 2009-08-06 ( ref ) .

    Tuve que hacer algunos de los principales perfiles de PHP para un proyecto anterior hace unos meses.

    La mejor opción que pude encontrar fue xhprof de Facebook con xhprof-ui .

    Lea acerca de cómo instalarlos aquí:

    http://blog.preinheimer.com/index.php?/archives/355-A-GUI-for-XHProf.html

    Algunos pros:

    • interfaz fácil de usar
    • back-end de la base de datos para guardar la sesión previa de creación de perfiles
    • buenos callgraphs

    Si solo quieres mirar la salida del generador de perfiles, eso es una cosa. Si está tratando de optimizar su código, no se olvide de este método . Sé que puedes hacerlo en xdebug.

    Está basado en una idea muy simple. Supongamos que su progtwig está haciendo más de lo necesario, por lo que podría acelerarse. De hecho, supongamos, por el argumento, que está haciendo 9 veces más de lo necesario, por lo que en total si se supone que demora 1 segundo, en realidad lleva 10. Esos 9 segundos de trabajo innecesario pueden mezclarse o no, como azúcar y harina.

    De acuerdo, durante esos 10 segundos, solo presiona ^ C para detenerlo, y luego observa cuidadosamente para ver qué estaba haciendo en ese momento.

    ¿Cuál es la probabilidad de que lo hayas atrapado haciendo el derroche? En realidad, es muy poco probable que no lo hayas atrapado haciendo el derroche.

    Si no estás seguro, solo repite.

    El desperdicio no tiene que ser tan grande como eso. De hecho, si sigues pausándolo de esa manera, tan pronto como lo veas haciendo algo en más de una ocasión, si es algo de lo que podrías deshacerte, obtendrás una aceleración agradable, garantizada.

    Por ejemplo, si lo pausa 5 veces y lo ve haciendo algo que realmente no tiene que ver en 2 de esas ocasiones, ¿cuánto podría ahorrar? No lo sabes exactamente, pero será alrededor del 40%. Podría ser tan pequeño como 20%. Podría tan fácilmente ser tan grande como 60%. Entonces no sabes cuánto ahorrará, pero no desperdicias una pepita de oro solo porque no estás seguro de cuánto pesa.

    Finalmente, no hay ningún problema para que el generador de perfiles pueda encontrar que esto no sucederá. Lo contrario no es verdad.