Back-End

12 out, 2018

Crie timers em PHP com o php-timer

Publicidade

E ai, pessoal! Como estão?

Vamos continuar nossa série de artigos sobre bibliotecas PHP úteis para nosso desenvolvimento no dia a dia. Hoje trago para vocês um componente do PHPUnit que é muito interessante para verificarmos quanto tempo está levando o processamento de um componente, verificar o quanto de recursos está sendo utilizado na execução de seu script PHP, ou simplesmente caso você queira criar um timer durante uma chamada.

O php-timer é um recurso padrão do PHPUnit, porém, foi extraído em um componente standalone. E é facilmente utilizável em seus projetos. Sem mais delongas, vamos aos exemplos de utilização:

Criamos uma pasta phptimer e executamos o composer require.

composer require phpunit/php-timer

Vamos fazer um teste no script para verificar o tempo gasto caso não realizemos nenhuma iteração dentro do script. Salvaremos como phptimer.php

<?php

require_once('vendor/autoload.php');

use SebastianBergmann\Timer\Timer; //carregando a biblioteca Timer

Timer::start(); //iniciando o Timer

$time = Timer::stop(); //pausando o Timer
var_dump($time); //dando var_dump na variável do Timer

print Timer::secondsToTimeString($time); //exibindo o tempo gasto durante a execução do Timer

E a execução trará o seguinte retorno:

Agora, vamos implementar uma função de fatorial, apenas como exemplo.

<?php

require_once('vendor/autoload.php');

use SebastianBergmann\Timer\Timer; //carregando a biblioteca Timer

Timer::start(); //iniciando o Timer

function fatorial($numero){ //exemplo de função que calcula o fatorial
    if($numero <= 1){
        return $numero;
    }else{
        return $numero * fatorial($numero - 1);
    }
}

$numero = 100;

$fatorial = fatorial(10); //executando o fatorial de 10
print ($fatorial . PHP_EOL); //exibindo o resultado

$fatorial1 = fatorial(50); //executando o fatorial de 50
print ($fatorial1 . PHP_EOL); //exibindo o resultado

$fatorial2 = fatorial(100); //executando o fatorial de 100
print ($fatorial2 . PHP_EOL); //exibindo o resultado

$time = Timer::stop(); //pausando o Timer
var_dump($time); //dando var_dump na variável do Timer

print (PHP_EOL);
print Timer::resourceUsage(); //exibindo o total de recursos gastos.

E, depois da execução teremos por exemplo:

Bem, você pode utilizar o carregamento de outras bibliotecas, ou coisas que consomem mais tempo e mais memória para executar.

Espero que tenham gostado dessa biblioteca. Um grande abraço e até a próxima!