summaryrefslogtreecommitdiff
path: root/kohana/core/Benchmark.php
diff options
context:
space:
mode:
Diffstat (limited to 'kohana/core/Benchmark.php')
-rw-r--r--kohana/core/Benchmark.php125
1 files changed, 0 insertions, 125 deletions
diff --git a/kohana/core/Benchmark.php b/kohana/core/Benchmark.php
deleted file mode 100644
index ce230f11..00000000
--- a/kohana/core/Benchmark.php
+++ /dev/null
@@ -1,125 +0,0 @@
-<?php defined('SYSPATH') OR die('No direct access allowed.');
-/**
- * Simple benchmarking.
- *
- * $Id: Benchmark.php 4149 2009-04-01 13:32:50Z Shadowhand $
- *
- * @package Core
- * @author Kohana Team
- * @copyright (c) 2007 Kohana Team
- * @license http://kohanaphp.com/license.html
- */
-final class Benchmark {
-
- // Benchmark timestamps
- private static $marks;
-
- /**
- * Set a benchmark start point.
- *
- * @param string benchmark name
- * @return void
- */
- public static function start($name)
- {
- if ( ! isset(self::$marks[$name]))
- {
- self::$marks[$name] = array();
- }
-
- $mark = array
- (
- 'start' => microtime(TRUE),
- 'stop' => FALSE,
- 'memory_start' => self::memory_usage(),
- 'memory_stop' => FALSE
- );
-
- array_unshift(self::$marks[$name], $mark);
- }
-
- /**
- * Set a benchmark stop point.
- *
- * @param string benchmark name
- * @return void
- */
- public static function stop($name)
- {
- if (isset(self::$marks[$name]) AND self::$marks[$name][0]['stop'] === FALSE)
- {
- self::$marks[$name][0]['stop'] = microtime(TRUE);
- self::$marks[$name][0]['memory_stop'] = self::memory_usage();
- }
- }
-
- /**
- * Get the elapsed time between a start and stop.
- *
- * @param string benchmark name, TRUE for all
- * @param integer number of decimal places to count to
- * @return array
- */
- public static function get($name, $decimals = 4)
- {
- if ($name === TRUE)
- {
- $times = array();
- $names = array_keys(self::$marks);
-
- foreach ($names as $name)
- {
- // Get each mark recursively
- $times[$name] = self::get($name, $decimals);
- }
-
- // Return the array
- return $times;
- }
-
- if ( ! isset(self::$marks[$name]))
- return FALSE;
-
- if (self::$marks[$name][0]['stop'] === FALSE)
- {
- // Stop the benchmark to prevent mis-matched results
- self::stop($name);
- }
-
- // Return a string version of the time between the start and stop points
- // Properly reading a float requires using number_format or sprintf
- $time = $memory = 0;
- for ($i = 0; $i < count(self::$marks[$name]); $i++)
- {
- $time += self::$marks[$name][$i]['stop'] - self::$marks[$name][$i]['start'];
- $memory += self::$marks[$name][$i]['memory_stop'] - self::$marks[$name][$i]['memory_start'];
- }
-
- return array
- (
- 'time' => number_format($time, $decimals),
- 'memory' => $memory,
- 'count' => count(self::$marks[$name])
- );
- }
-
- /**
- * Returns the current memory usage. This is only possible if the
- * memory_get_usage function is supported in PHP.
- *
- * @return integer
- */
- private static function memory_usage()
- {
- static $func;
-
- if ($func === NULL)
- {
- // Test if memory usage can be seen
- $func = function_exists('memory_get_usage');
- }
-
- return $func ? memory_get_usage() : 0;
- }
-
-} // End Benchmark