2011-11-10 8 views
31

Ya he habilitado el perfil xDebug en mi instalación XAMPP y funciona bien.¿Puedo decir manualmente en xdebug profiler para comenzar a perfilar en un lugar específico?

Ahora me gustaría preguntar si hay una manera de decir desde mi código fuente cuándo comenzar a perfilar con xDebug.

Más específico, me gustaría crear un plugin de WordPress, y me gustaría decir, comenzar a perfilar desde el punto de inicio del complemento y dejar de perfilar en el punto final del complemento.

¿Es esto posible?

Nota: Lo anterior es solo un ejemplo. Puede ser un complemento de CakePHP o una nueva clase de PHP que necesite para el perfil

Respuesta

46

Editar: Por How to Turn On/Off Xdebug Profiling at Runtime? no se puede habilitar/deshabilitar en tiempo de ejecución (por ejemplo, por llamada de función).

Puede habilitar selectivamente el generador de perfiles por solicitud, que generalmente es mejor. Para lograr este comportamiento configurar estos ajustes:

xdebug.profiler_enable_trigger=1 
xdebug.profiler_enable=0 

Tenga en cuenta que desactivamos perfilador y sólo permiten el gatillo. Desde el navegador pase XDEBUG_PROFILE = 1

http://example.com/file.php?XDEBUG_PROFILE=1 

También puede pasar en este parámetro POST o COOKIE. Para más información consultar

  1. http://xdebug.org/docs/profiler#starting
  2. http://xdebug.org/docs/all_settings#profiler_enable_trigger
+2

he downvoted esta respuesta, ya que en realidad no responde a la pregunta. Leí la pregunta como que quería activar y desactivar dinámicamente el perfilador en php, lo que permite perfilar el código específico en lugar de una solicitud completa. –

+5

Upvoted por mencionar explícitamente la incapacidad para activar/desactivar en tiempo de ejecución, y también porque esta respuesta responde realmente al título de la pregunta, que fue lo que busqué. – xiankai

+1

Upvoted, porque al igual que la persona antes mencionada, esta respuesta responde a la pregunta. Gracias por la información y la respuesta correcta. –

4

Según lo indicado por Laith, no se puede elegir si desea XDebug para comenzar a perfilar y cuando quiere que se detuviera. Pero, otra característica de xDebug ofrece este tipo de flexibilidad: rastreo.

El perfilado y el seguimiento no son exactamente las mismas cosas, pero, si termina aquí, es posible que el rastreo se adapte a sus necesidades.

Para iniciar el seguimiento, usted tiene que utilizar esta función: xdebug_start_trace()

Para detener el seguimiento, usted tiene que utilizar esta función: xdebug_stop_trace()

Hay una gran cantidad de ajustes que puede utilizar para el cambio el comportamiento de rastreo:

http://xdebug.org/docs/execution_trace

Cuestiones relacionadas