Pergunta

Otimização de código PHP através de benchmarking de tempo de execução é sempre em frente. Mantenha o controle de $ iniciar e $ tempos finais via microtime () em torno de um bloco de código - Eu não estou procurando uma resposta que envolve microtime uso ()

.

O que eu gostaria de fazer é medir o tempo que leva o PHP para se preparar para executá-lo do código - time code-parse / op-code-construção-árvore. Meu raciocínio é que, enquanto é fácil basta incluir () a cada classe que você pode necessidade de cada página que você tem em um site, a sobrecarga da CPU pode não ser "livre". Eu gostaria de saber como "caro" tempo de análise é realmente.

Estou assumindo que um cache opcode tais como APC é não parte do cenário.

Eu seria correto que a medição do tempo de análise em PHP é algo que teria que ocorrer em mod_php?

Editar : Se possível, tendo em conta o uso $_SERVER['DOCUMENT_ROOT'] em código seria útil. soluções de comando pode levar um pouco de mexer para fazer isso (mas ainda ser respostas valiosas).

Foi útil?

Solução

Sim. Há.

<?php return; rest of the code ?>

ou

<?php whole code; $%^parse erorr!@! ?>

e, em seguida, comparar o tempo de execução de scripts vazio

time php empty.php

com o tempo que leva para executar (ou não) escrita regular com os acréscimos que eu mencionei acima:

time php test.php

Eu usei este método em arquivos grandes e PHP5.3 em Core2Duo 2.4Ghz pode analisar entre 1,5 e 4,5 MB de código PHP por segundo (depende muito da complexidade do código é claro).

Outras dicas

Para o nível detalhado de análise que você está procurando, parece que a implementação Xdebug ( http://xdebug.org/ ) iria dar-lhe a maior informação w / o ter que cortar o seu código em pedaços segmentados.

Um método poderia ser cronometrar a execução do script a partir da linha de comando.

No Linux, por exemplo:

$ time php5 -r 'echo "Hello world";'
Hello world
real    0m1.565s
user    0m0.036s
sys     0m0.024s

Será que isso ajuda em tudo? Talvez seja útil para descobrir tempos relativos entre diferentes roteiros, mas pode não ser indicativa de tempo necessário através do módulo Apache

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top