Si tienes ganas de saber cuanto tarde en ejecutarse ese código que escribiste en PHP o hacer pruebas para saber que bloque se esta tardando más, puedes hacer tus pruebas con esta clase (aunque es chiquita cualquier recomendación se agradece)
La clase:
<?php class benchmark{ private $start; private $end; function startBenchmark(){ $this->start= microtime(true); } function endBenchmark(){ $this->end= microtime(true); } function getBenchmark(){ $time = ($this->end – $this->start); return $time; } } ?>
Ahora el uso sería así de sencillo:
<?php $test= new benchmark; $test->startBenchmark(); // código que queremos probar. En este caso solo dormimos un rato :-) usleep(2000000); $test->endBenchmark(); echo “Tiempo de la prueba: “.$test->getBenchmark(); ?>
Lo que nos muestra, en este caso es:
Tiempo de la prueba: 2.00014305115
No seria mejor que, en lugar de encapsular tu codigo entre dos funciones, metas la funcion que quieres llamar y pasar argumentos?. Tiene mucho que no uso PHP, pero en python puedes hacer algo asi:
import time
class timeit:
def timeit(self, func, *args): #Usamos una funcion timeit porque __init__ no puede devolver valores.
c = time.time()
result = func(*args)
self.resulttime = time.time() – c
return result
t = timeit()
result = t.timeit(time.sleep, 2000000) #Sleep es una funcion parte del modulo time.
t.resultttime
Es desde mi punto de vista, mas facil de usar, menos propenso a errores y puedes reutilizar tu clase facilmente con solo usar la instancia y su metodo timeit.
Saludos!
Hola markuz, no se si te entendí ¿me dices que mejor lo deje de esta manera?:
class benchmark{
private $start;
private $end;
function __construct(){
$this->start= microtime(true);
}
function endBenchmark(){
$this->end= microtime(true);
}
function getBenchmark(){
$time = ($this->end – $this->start);
return $time;
}
}
$test= new benchmark;
// código aqui
usleep(2000000);
$test->endBenchmark();
echo \”Tiempo de la prueba: \”.$test->getBenchmark();
Bueno eso creo que queda mejor no tiene sentido esa llamada inicial a una función independiente.
Te comento que esto lo uso para, por ejemplo, ver que bloque de código va más rápido cuando tengo dos o más opciones.