webgrind trigger start remote_connect_back how profiling xdebug kcachegrind

profiling - trigger - xdebug remote_connect_back on



¿Qué es "<Ciclo 1>" una indicación de en Xdebug? (2)

Aunque @osgx menciona que puede desactivar la detección de ciclos, solo quería señalar aquí que si siente que <cycle 1> está ocultando algo de interés, probablemente debería desactivar la detección de ciclos como él explica.

La desactivación de la detección de ciclos en mi caso en realidad reveló algunos datos clave que faltaban antes.

Tengo un perfil xdebug en un script php que analicé con kcachegrind. Aquí hay una captura de pantalla que muestra que la mayor parte del tiempo pasado dentro de una función determinada se gastó dentro del <cycle 1> y los principales ''Llamadores'' se crearon desde ''include'' e ''include_once'' en index.php.

Este perfil se ejecutó durante una prueba de esfuerzo con apache ''ab'', por lo que se produjeron muchas conexiones simultáneas.

¿Qué indica <cycle 1> en un perfil de xdebug?


Es la detección del ciclo heurístico. Puede desactivarlo desde la barra de herramientas o desde el menú "Ver-> Detectar ciclos" o "Ver-> Hacer ciclo de detección".

El ciclo es algo así como recursión, tanto directa ( f() -> f() -> f() donde -> significa llamada) como indirecta ( f()->g()->f()->g()->f() )

El formato de Callgring (usado en kcachegrind) no guarda la pila de llamadas completa, almacena solo pares de personas que llaman y puede ser difícil restaurar ciclos más largos a partir de esta información