Bem, você tem a maneira difícil, não-tão-difícil e fácil de fazer isso.
A maneira difícil
Use o microtime () para criar um perfil manualmente para ver o que leva mais tempo. Fácil de implementar para um projeto menor, mas que realmente fica pesado.
A maneira não tão difícil quanto
Configure um depurador PHP para fazer isso por você. O Xdebug é provavelmente o melhor, mas existem muitas opções por aí.
Ele é configurado como uma extensão do PHP para que ele automaticamente crie um perfil do seu código para você e que você saiba o que está levando uma grande quantidade de tempo.
Isso provavelmente ainda levará um bom tempo para você configurar, e é tudo menos direto.
A maneira fácil
Confira New Relic . Você instala uma extensão PHP e configura uma conta em seu servidor, e automaticamente ele irá criar um perfil para você.
Sua versão pro, que é bastante cara, oferece uma tonelada de dados para descobrir o que está ocupando o tempo em um script PHP. A versão gratuita dá uma ideia básica do que está acontecendo.
Eu estava cético no começo, mas estou muito feliz com o nível de dados que eles fornecem.
Além disso, eles têm uma avaliação gratuita de 15 dias do Pro.
* Eu não sou afiliado da New Relic.