Quero saber quantos milissegundos um loop for PHP leva para executar.
Conheço a estrutura de um algoritmo genérico, mas não faço ideia de como implementá-lo no PHP:
Begin
init1 = timer(); // where timer() is the amount of milliseconds from midnight
the loop begin
some code
the loop end
total = timer() - init1;
End
Respostas:
Você pode usar a
microtime
função para isso. A partir da documentação :Exemplo de uso:
fonte
microtime(true)
se deseja fazer cálculos com o valor de retorno.get_as_float
astrue
) fornecerá resultados em segundos , de acordo com a documentação do PHP.get_as_float
étrue
,microtime()
retorna o valor que representa os segundos ...$time = microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];
(Mais informação em uma resposta abaixo .)Você pode usar
microtime(true)
com as seguintes maneiras:Coloque isso no início do seu arquivo php:
// seu código de script vai aqui
Coloque isso no final do seu arquivo php:
Ele produzirá o resultado
minutes
.fonte
Você pode usar a
REQUEST_TIME
partir da$_SERVER
matriz superglobal. A partir da documentação :Dessa forma, você não precisa salvar um carimbo de data / hora no início do seu script. Você pode simplesmente fazer:
Aqui,
$time
conteria o tempo decorrido desde o início do script em segundos, com precisão de microssegundos (por exemplo,1.341
por 1 segundo e 341 microssegundos)Mais informações:
Documentação do PHP :
$_SERVER
variáveis emicrotime
funçãofonte
$start = $_SERVER["REQUEST_TIME_FLOAT"]; $myscript = microtime(true); $bootstrap = $myscript - $start; ...do stuff ...; $myscripttime = microtime(true) - $myscript;
$myscripttime = microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];
no final do seu script sem precisar salvar um carimbo de data / hora no início.$time
conterá a diferença em segundos , não em microssegundos .1.1
equivale a 1 segundo + 100 microssegundos.Crie o arquivo loadtime.php
Do que no começo do seu script, depois de
<?php
escreverinclude 'loadtime.php'; $loadtime=new loadTime();
Quando a página é carregada no final, será escrito "Carregado em x segundos"
fonte
</html>
tag de fechamento inválidafonte
Veja microtime () .
fonte
Aqui está uma função que cronometra a execução de qualquer parte do código PHP, assim como o módulo timeit do Python: https://gist.github.com/flaviovs/35aab0e85852e548a60a
Como usá-lo:
Resultado:
Disclaimer: Eu sou o autor deste Gist
EDIT: timeit agora é um projeto separado e independente em https://github.com/flaviovs/timeit
fonte
Você tem a idéia certa, exceto que um tempo mais preciso está disponível com a função microtime () .
Se o que estiver dentro do loop for rápido, é possível que o tempo decorrido aparente seja zero. Nesse caso, envolva outro loop no código e chame-o repetidamente. Certifique-se de dividir a diferença pelo número de iterações para obter uma vez por vez. Criei um código de perfil que exigia 10.000.000 de iterações para obter resultados consistentes e confiáveis de tempo.
fonte
Eu pensei em compartilhar a função que eu criei. Espero que você possa economizar tempo.
Ele foi originalmente usado para rastrear o tempo de um script baseado em texto, portanto, a saída está no formato de texto. Mas você pode modificá-lo facilmente para HTML, se preferir.
Ele fará todos os cálculos para você por quanto tempo foi gasto desde o início do script e em cada etapa. Ele formata toda a saída com 3 casas decimais de precisão. (Até milissegundos.)
Depois de copiá-lo para a parte superior do seu script, tudo o que você faz é colocar as chamadas da função recordTime após cada peça que você desejar.
Copie isso para o topo do seu arquivo de script:
Para acompanhar o tempo que passa, basta:
Por exemplo:
Dá saída assim:
Espero que isso ajude alguém!
fonte
Aqui está um método muito simples e curto
fonte
se você deseja exibir esse tempo em segundos:
fonte
Aqui está uma implementação que retorna segundos fracionários (ou seja, 1.321 segundos)
fonte
Aqui está o meu script para medir o tempo médio
fonte
Você pode encontrar o tempo de execução em segundo com uma única função.
fonte