Perdido?! Não sabe por onde começar? Conheça o AprendaPHP, um curso gratuito de PHP provido pelo PHPit!

PHPit - PHP

"Agora, pois, permanecem a fé, a esperança, o amor, estes três; mas o maior destes é o amor." (I Coríntios 13:13)

Como calcular tempo de carregamento da página utilizando PHP

Prefácio


Salve, galera! Tudo na paz com vocês?
Hoje quero ensinar um esqueminha bem bacana que serve pra calcular o tempo de carregamento de uma página.

Você com certeza já viu em algum lugar diversos sites que possuem o tempo que a página levou para ser gerada. O que você talvez não sabia, é que o PHP pode fazer isso facilmente, utilizando apenas um cálculo de subtrair!

Conceito


Como você sabe, o PHP possui uma variável superglobal chamada $_SERVER (a qual já foi citada várias, e várias, e várias, e várias vezes) que guarda diversos dados importantes.

Hoje utilizaremos o índice REQUEST_TIME. Ele possui a timestamp do momento em que a página foi requisitada.
Para esta experiência, utilizaremos também a função mktime(), que retorna a timestamp atual.

O objetivo é, na última linha do arquivo, mostrar para o usuário o resultado da subtração destes dois valores, afim de que ele seja informado do tempo que a página demorou para ser carregada.

Mão na massa


O script a seguir é bastante simples. Consiste em um for que irá até 100 milhões e depois irá imprimir quanto tempo demorou, que obviamente irá variar de uma máquina para outra (aqui é um Core 2 Duo 2.4 e demorou 9 segundos).

Código: Alternar entre o modo de cópia/destaque
  1. <?php
  2. for ($i=0; $i<100000000; $i++)
  3. continue;
  4.  
  5. $tempo_carregamento = mktime() - $_SERVER['REQUEST_TIME'];
  6.  
  7. print "A página demorou {$tempo_carregamento} segundos para carregar.";
  8. ?>
<?php
    
for ($i=0$i<100000000$i++)
        continue;

    
$tempo_carregamento mktime() - $_SERVER['REQUEST_TIME'];

    print 
"A página demorou {$tempo_carregamento} segundos para carregar.";
?>


Lembrando que você deve colocar sempre no final da página, caso contrário não terá efeito.

Conclusão


Você pode utilizar este cálculo para outros fins, como fazer um benchmark de sua aplicação. Poderá catalogar o tempo que suas páginas demoram para carregar e talvez fazer cache das mais demoradas.

E, claro, sempre que você achar uma nova utilidade pro código, coloque nos comentários! :)

Um grande abraço a todos e fiquem com Deus!
Rafael Jaques

Dim dim

 

Comentaí! (06)

Muitoooooo bom o artigo, parabéns!!! Felipe em 02/04/2009 às 11:05 utilizando o Mozilla Firefox Mozilla Firefox 3.0.8 no Windows Windows XP
O artigo foi útil, obrigado. :) Giovanni Silva em 22/04/2009 às 10:04 utilizando o Mozilla Firefox Mozilla Firefox 3.0.8 no Windows Windows XP
Muito legal!
Finalmente achei um site que tenha tutos mais interessantes!
Para todo lugar que eu vou vejo: criando sistema de login, contador de visitas, comentarios... argh! Já não aguentava mais a mesma coisa uhsauhasuhsa
Vlws ae e continue postando mais tutos para nós =D Lucas em 25/04/2009 às 21:56 utilizando o Mozilla Firefox Mozilla Firefox 3.0.9 no Windows Windows Vista
O xdebug tem umas opções muito boas pra fazer isso, fornecendo inclusive mais informações.
http://www.xdebug.org/
Eu fiz um resuminho que sempre uso pros meus projetos: http://www.eltonminetto.net/xdebug.htm (sei que é cara-de-pau fazer propaganda do blog pessoal em comentários hehehe) Elton Minetto em 04/06/2009 às 09:39 utilizando o Safari Safari 528.17 no Mac OS Mac OS X
seguinte...
testei esse codigo na minha local...
o mktime foi perfeitamente porem a $_SERVER['REQUEST_TIME'] voltou com valor nulo,
gostaria de saber pq...

tem outra...
a 1° vez q teste deu erro pq demoro mais d 30 segs
depois foi normal e rapidinho,
obrigado Angelo em 04/08/2009 às 10:21 utilizando o Google Chrome Google Chrome 2.0.172.37 no Windows Windows XP
Aqui acho que ficou com problema ... Quando coloco este script, a página demora cerca de 10 / 15 segundos pra carregar :| Anderson em 03/11/2009 às 08:27 utilizando o Google Chrome Google Chrome 4.0.223.11 no Windows Windows NT
 

Comenta logo, pô!

* Todos os links inseridos nos comentários possuem rel="nofollow" para impedir com que crawlers considerem os mesmos como relevantes.
* Os e-mails não são divulgados.

Dados pessoais

Você é realmente um humano?

Finalmente, digite seu comentário :)

Caixinha de Sugestões

O que é isso? Aqui você pode simplesmente digitar uma sugestão (artigos, resenhas, melhorias, etc) sem precisar preencher longos formulários. Digite o que quiser na caixinha abaixo e eu lerei com o maior prazer! Se quiser se identificar, fique a vontade!

O PHPit é redigido e mantido por Rafael Jaques - Política de Privacidade.

XHTML/CSS desenvolvido por André Gazola.

PHPit 2007 - 2009 - Alguns direitos reservados.

Feeds ;)

Creative Commons License

PHPit por Rafael Jaques é licensiado sob a Creative Commons Atribuição-Uso Não-Comercial-Compartilhamento pela mesma Licença 2.5 Brasil License.