<?
require_once "dateClass.php";
class cronoClass extends dateClass { private $_cronoStart = array(); private $_cronoStop = array(); private $_milliStart = array(); private $_milliStop = array(); private $_precision_milli = false; public function set_precision_milli($precision_milli = false) { if (!is_bool($precision_milli)) throw new Exception("$precision_milli is not valid parameter",0); $this -> _precision_milli = $precision_milli; } public function start($label = false) { if ($this -> _precision_milli) { $this -> _milliStart[$label] = $this -> get_Milliseconds(); $this -> _cronoStart[$label] = time(); return; } if ($label === false) throw new Exception("You must define a crono label",0); $this -> _cronoStart[$label] = $this -> get_Time(true); } public function stop($label = false) { if ($this -> _precision_milli) { $this -> _milliStop[$label] = $this -> get_Milliseconds(); $this -> _cronoStop[$label] = time(); return; } if ($label === false) throw new Exception("You must define a crono label",0); if (!isset($this -> _cronoStart[$label])) throw new Exception("The label $label not exsist",0); $this -> _cronoStop[$label] = $this -> get_Time(true); } public function get_diff_seconds($label = false) { $value1 = $this -> _cronoStop[$label] + $this -> _milliStop[$label]; $value2 = $this -> _cronoStart[$label] + $this -> _milliStart[$label]; return $value1 - $value2; } public function get_diff_media() { $keys = array_keys($this -> _milliStart); for ($i = 0;$i< count($keys);$i++) { $tot += $this -> get_diff_seconds($keys[$i]); } return $tot / count($keys); } }
$cronometro = new cronoClass(); $cronometro -> set_precision_milli(true); $i = 0; $test = new dateClass(); for (;$i< 1000;$i++) { if ($i == 0) continue; $cronometro -> start("test$i");
//sezione di test
try { $test -> set_Day("04"); //$test -> set_Month("12"); //$test -> set_Year("99"); //print_R($test -> toSource()); } catch (Exception $e) { $data = $e -> getTrace(); echo $e -> getMessage() . " - generated in function " . $data[0]["function"]; }
$cronometro -> stop("test$i"); }
echo "<hr>" . $cronometro -> get_diff_media();
?>
|