Script lento do PHP – debugging e diagnóstico automático?

Como posso descobrir se um script PHP é ruim e corre muito lento quando executado por centenas de usuários por segundo, e melhor ainda, existe alguma ferramenta que possa me informar aproximadamente qual parte do código me desacelera? …

Eu não desejo publicar o código aqui (principalmente porque esta pergunta se refere a outra coisa e porque é um desperdício de espaço) e, de preferência, nunca posto em qualquer lugar porque é realmente uma bagunça … uma bagunça que eu entendo e sim, Eu codifiquei, mas ainda uma bagunça que insultaria alguém tentando compreendê-lo … então, se você tiver alguma idéia criativa, por favor, avise-me!

Felicidades!

(Agradeço já por suas respostas recebidas!)

Ative o perfil XDebug e envie os arquivos resultantes através do WinCacheGrind (Windows) ou do KCacheGrind (Linux).

Isso permitirá que você veja uma quebra das funções que mais se chamam, e onde o tempo é gasto. Aprender a usar o XDebug é uma obrigação para qualquer desenvolvedor PHP sério.

Aqui está um tutorial aparentemente bom para começar com o perfil XDebug .

Você precisará de duas ferramentas

  • um perfil (Google it)

Eu uso esse no trabalho:

http://www.nusphere.com/products/php_profiler.htm (comercial)

  • um testador de carga

Confira este site para obter mais informações:

http://performance-testing.org/content/performance-testing-tools

Eu recomendaria usar um perfil de PHP. O Xdebug que é depurador PHP e profiler pode ajudar muito. Há também outros depuradores, por exemplo, Zend Debugger.

Para analisar os resultados de perfis, você também pode precisar de uma ferramenta especial. Usei o WinCacheGrind no Windows e no KCachegrind no Linux.

O relatório de perfil mostra toneladas de informações úteis, por exemplo, quais linhas do código-fonte foram chamadas quantas vezes e quais funções aproveitaram o tempo de execução.