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).

<?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

Esta entrada foi publicada em Dicas e marcada com a tag , , . Adicione o link permanente aos seus favoritos.

9 pessoas já comentaram! Tá esperando o quê?

  1.  
    Felipe disse:

    Muitoooooo bom o artigo, parabéns!!!

    Utilizando Mozilla Firefox Mozilla Firefox 3.0.8 no Windows Windows XP
  2.  

    O artigo foi útil, obrigado. :)

    Utilizando Mozilla Firefox Mozilla Firefox 3.0.8 no Windows Windows XP
  3.  
    Lucas disse:

    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

    Utilizando Mozilla Firefox Mozilla Firefox 3.0.9 no Windows Windows Vista
  4.  
    Elton Minetto disse:

    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)

    Utilizando Safari Safari 528.17 no Mac OS X Mac OS X 10.5.7
  5.  
    Angelo disse:

    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

    Utilizando Google Chrome Google Chrome 2.0.172.37 no Windows Windows XP
  6.  
    Anderson disse:

    Aqui acho que ficou com problema … Quando coloco este script, a página demora cerca de 10 / 15 segundos pra carregar :|

    Utilizando Google Chrome Google Chrome 4.0.223.11 no Windows Windows 7
  7.  
    TopTec.net.br disse:

    bah este código faz a paǵina demorar muito para carregar (11s)

    e com este código demorou menos (0.0001s)

    <?

    //- Variavel Inicio

    $t_start = array_sum(explode(' ', microtime()));

    $exec_time = array_sum(explode(' ', microtime())) – $t_start;

    $exec_time1 = (ceil($exec_time * 10000))/10000;

    //- Variavel Fim

    //- Codigo Inicio

    print"Tempo de Execucao: $exec_time1 sec.";

    //- Codigo Fim

    ?>

    Utilizando Mozilla Firefox Mozilla Firefox 4.0b4 no Linux Linux
  8.  
    silverfox disse:

    Anderson e TopTec.net.br é lógico que o código demora é porque vocês provavelmente esqueceram de remover o LOOP do FOR, o código só possui uma falha foi usado mktime ao invez de time, recomendo usar time.

    Utilizando Google Chrome Google Chrome 6.0.472.62 no Windows Windows XP
  9.  
    valmir disse:

    legal, vlw funçao legal,

    se vcs querem q a pagina demora user o

    <?php

    sleep(5);

    ?>

    ele vai demora 5 segundos

    php full

    Utilizando Mozilla Firefox Mozilla Firefox 3.6.13 no Windows Windows 7

Deixe um Comentário

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">