Calculando o tempo de carregamento do site

Então você quer saber (e provavelmente exibir) quantos minutos segundos a página do seu site demorou pra ser gerada pelo PHP? Sim, nós podemos! o/

A lógica desse script é bem simples: primeiro você armazena um valor de tempo, depois carrega todo o seu site, e no final, pega novamente esse valor de tempo e calcula a diferença entre os dois valores.

Veja como é a função que usaremos pra isso:

function tempoExecucao($start = null) {
    // Calcula o microtime atual
    $mtime = microtime(); // Pega o microtime
    $mtime = explode(' ',$mtime); // Quebra o microtime
    $mtime = $mtime[1] + $mtime[0]; // Soma as partes montando um valor inteiro

    if ($start == null) {
        // Se o parametro não for especificado, retorna o mtime atual
        return $mtime;
    } else {
        // Se o parametro for especificado, retorna o tempo de execução
        return round($mtime - $start, 2);
    }
}

Alguns podem dizer que ela está um pouco avançada… Mas olhe com calma, ela é bem simples:

Primeiro ela calcula o microtime e o manipula para virar um inteiro, depois, se você não passou o parâmetro pra ela, ela retorna o microtime atual (é aqui que ela retorna o primeiro valor de tempo). Caso você tenha passado o parâmetro pra ela, o que vai acontecer na 2ª chamada da função, ela calcula a diferença entre o ‘agora’ e o que você passou pra ela e te retorna a diferença com 2 casas decimais de exatidão.

Pra usar ela é bem simples:

Inclua essa função no seu site, de preferência antes de qualquer script. Logo no começo da execução do php, antes de conectar a banco de dados, abrir sessões e etc.. Coloque essa linha:

// Define uma constante contendo o microtime atual
define('mTIME', tempoExecucao());

Isso vai fazer com que o PHP defina uma constante (é como uma variável que só pode ser definida uma única vez) contendo o microtime atual, ou seja, significando o ‘agora’.

Depois faça tudo o que você deve fazer no seu site… Exiba as coisas, conecte o banco, envie e retorne resultados, faça e aconteça… Aí, depois de todo o site, é hora de descobrir quanto tempo isso demorou, é só usar essa outra linha:

// Salva numa variável o valor arredondado do tempo de carregamento
$tempo = tempoExecucao(mTIME);

Com isso, definiremos uma variável contendo um valor real, por exemplo: 1.35 isso significa que o seu site demorou 1.35 segundos para ser ‘gerado’ pelo PHP. Aí é só exibir essa variável no fim de tudo e pronto!

Vale lembrar que esse tempo calculado pelo php não é o tempo que o seu navegador vai demorar pra carregar todas as imagens e elementos do site. Esse marcador que criamos serve pra descobrir quanto o php demorou pra gerar o código fonte do site.
8-)

Documentação Oficial:

  • Função microtime() » Retorna os microsegundos desde 1970
  • Função explode() » Quebra uma string usando um(ns) carectere(s) como separador
  • Função round() » Arredonda um valor numérico real

5 thoughts on “Calculando o tempo de carregamento do site

  1. Lucas

    eu faço de outra maneira:
    no inicio coloco:
    $start=microtime(true);

    e no final:
    echo “demorou “.(microtime(true)-$start).” segundos.”;

  2. Rodrigo Berriel

    Ótimo mesmo… muito simples… eu não tinha a mínima idéia de como fazer isso =]

    Testei aqui e deu certin, tudo normal °-°

    Valeu!

  3. Thiago Belem

    @Gabriel
    Eu vou tentar não falar de sistemas prontos aqui no Blog para não parecer tendencioso… Mas procurarei saber e te mando um e-mail. Abraços e obrigado pela pariticipação!

  4. Gabriel

    Thiago,
    Valeu pelo tuto!!! Mas, desculpe minha ignorancia, é q sou novato nesse negocio de WEB… Eu baixei o Joomla pra tentar aprender PHP e outras coisas, e gostaria de saber se há a possibilidade de vc dá uma dica de como e onde inserir essa função no Joomla. Valeuu!!

Comments are closed.