39 private static $_benchmark;
40 private static $_avgload = 0;
49 if (!isset(self::$_benchmark[$name])) {
50 self::$_benchmark[$name] = array(
'start_time' => microtime(),
'final_time' => 0,
'memory_start' => memory_get_usage(),
'memory_stop' => 0,
'time_execution' => 0);
60 private static function _stop_clock($name)
62 if (isset(self::$_benchmark[$name])) {
63 if (PHP_OS ==
'Linux') {
64 $load = sys_getloadavg();
68 self::$_avgload = $load[0];
69 self::$_benchmark[$name][
'memory_stop'] = memory_get_usage();
70 self::$_benchmark[$name][
'final_time'] = microtime();
71 list ($sm, $ss) = explode(
' ', self::$_benchmark[$name][
'start_time']);
72 list ($em, $es) = explode(
' ', self::$_benchmark[$name][
'final_time']);
73 self::$_benchmark[$name][
'time_execution'] = number_format(($em + $es) - ($sm + $ss), 4);
74 return self::$_benchmark[$name][
'time_execution'];
85 if (self::$_benchmark[$name]) {
86 self::$_benchmark[$name][
'memory_usage'] = number_format((self::$_benchmark[$name][
'memory_stop'] - self::$_benchmark[$name][
'memory_start']) / 1048576, 2);
87 return self::$_benchmark[$name][
'memory_usage'];
89 throw new KumbiaException(
"No existe el Benchmark para el nombre: '$name', especificado \n");
100 if (isset(self::$_benchmark[$name])) {
101 return self::_stop_clock($name);
103 throw new KumbiaException(
"No existe el Benchmark para el nombre: $name, especificado \n");
111 public static function test($func, $loops)
113 self::start_clock($func);
115 for ($i = 1; $i <= $loops; $i++) {
119 $time = self::time_execution($func);
120 echo
'** Funcion: ', $func;
121 echo $loops,
' veces';
122 echo
' Tiempo: ', $time;