Gerando profiles com xdebug

Precisamos ter o controle sobre nossas aplicações. Sabermos onde e porque um processo (ou uma página) está lenta. Antes de esperarmos isso acontecer, precisamos saber o que está rodando, e já prevermos um futuro problema. Com xdebug, alem de debugarmos nosso código em tempo real, podemos criar um profile. Este profile nos da informação de cada passo do nosso código, tempo de execução, e outras informações que nos ajudam muito à melhorar nosso código

Imagem

Gerando profiles com xdebug

A primeira coisa que devemos ter, é a extensão php5-xdebug instalada.

    sudo apt-get install php5-xdebug

Após isso, temos 2 configurações para o xdebug, para que o mesmo gere profiles. A primeira, é sempre gerar profile, o que eu não acho muito bom, pois os arquivos são grandes, dependendo da pagina, a outra é passar por url uma variável, que ativa a geração do profile.

Para criar profiles sempre, aba o arquivo /etc/php5/apache2/conf.d/20-xdebug.ini e adicione esta configuração

    xdebug.profiler_enable = 1
    xdebug.profiler_output_dir = "/tmp/xdebug"

Para a segunda configuração, abra o mesmo arquivo /etc/php5/apache2/conf.d/20-xdebug.ini, e adicione esta configuração

    xdebug.profiler_enable = 0
    xdebug.profiler_enable_trigger = 1
    xdebug.profiler_output_dir = "/tmp/xdebug"

Note que os arquivos de profile ficarão no diretório /tmp/xdebug, então crie este diretório, e dê permissões à ele.

Caso você tenha optado pela primeira opção, ao abrir sua pagina no navegador, o arquivo será criado. Caso tenha escolhido a segunda opção, adicione a variável ?XDEBUG_PROFILE=1 em sua URL.

Para fazer a analise deste arquivo, à olho nu, é quase que impossivel. Para fazer esta analise, existem algumas ferramentas. A que mais me agradou, pela facilidade de instalação, foi a

Acesse o endereço, baixe-o e descompacte no diretório publico de seu apache. Caso não consiga acessa-lo, não esqueça de dar as permissões necessárias.

Ao abrir o endereço, o Webgrind ja reconhecerá o endereço /tmp/xdebug, e te dará a opção de selecionar qual o profile que você quer ver, no canto direito superior.

Á primeira vista, o relatório é um tanto confuso, mas analisando-o com mais calma, você verá que é um belo de um recurso ao programador que se preocupa com o desempenho.

:wq!