Con la clase Time Profiler se puede medir el tiempo que tarda en ejecutarse una determinada función.
La clase regresa el resultado de la función y el tiempo que se necesitó para ejecutar la función en cuestión de segundos y milisegundos.
Autor: Tony L. Requena
Descargar: Time Profiler
Código de la clase class.timeprofiler.php
<?php
/*------------------------------------------------------------------------------
** File: class.timeprofiler.php
** Class: Time Profiler
** Description:
** Version: 1.0.1
** Created: 11-Jul-2014
** Author: Tony L. Requena
** Homepage: www.phpmyipcam.com
**------------------------------------------------------------------------------
** COPYRIGHT (c) 2014 Tony L. Requena
**
** The source code included in this package is free software; you can
** redistribute it and/or modify it under the terms of the GNU General Public
** License as published by the Free Software Foundation. This license can be
** read at:
**
** http://www.opensource.org/licenses/gpl-license.php
**
** This program is distributed in the hope that it will be useful, but WITHOUT
** ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
** FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
**------------------------------------------------------------------------------
**
** Usage:
**
function imprime(){
sha1(md5("Hello"));
}
function blah($n=1){
for($i = 0; $i<= $n; $i++){
$a = $i;
}
}
function getContent($url){
return file_get_contents($url);
}
$timer = new TimeProfiler("blah", 500, array(100));
echo "".$timer->getMicro()." µs (".$timer->getMili()." ms)";
echo "<br />";
$timer = new TimeProfiler("imprime");
echo $timer->getMicro()." µs (".$timer->getMili()." ms)";
$timer = new TimeProfiler("getContent",1,array('http://server.sivu.es/testfile.txt'));
echo $timer->getMicro()." µs (".$timer->getMili()." ms)<br />";
var_dump($timer->funcOutput()); /*** NEW NEW NEW **/
**
**------------------------------------------------------------------------------ */
class TimeProfiler{
private $microseconds = 0;
public $start = 0;
public $function;
public $end = 0;
public $miliseconds;
function __construct($func, $iterations=1, $arguments = NULL){
$this->function = $func;
$this->microseconds = 0;
$this->start = microtime(true);
for($n=0;$n<$iterations;$n++){
if($arguments==NULL){
$this->val = call_user_func_array($func,array());
}else{
$this->val = call_user_func_array($func, $arguments);
}
}
$this->end = microtime(true);
$this->microseconds = $this->end - $this->start;
$this->miliseconds = round($this->microseconds * 1000);
return $this->val;
}
function funcOutput(){
return $this->val;
}
function getMicro(){
return $this->function.": ".sprintf('%f', $this->microseconds);
}
function getMili(){
return $this->miliseconds;
}
}
?>
No hay comentarios:
Publicar un comentario