diff options
Diffstat (limited to 'buildscripts/Benchmark/Iterate.php')
-rw-r--r-- | buildscripts/Benchmark/Iterate.php | 334 |
1 files changed, 167 insertions, 167 deletions
diff --git a/buildscripts/Benchmark/Iterate.php b/buildscripts/Benchmark/Iterate.php index acf1ec08..f09dcb76 100644 --- a/buildscripts/Benchmark/Iterate.php +++ b/buildscripts/Benchmark/Iterate.php @@ -1,167 +1,167 @@ -<?php
-//
-// +------------------------------------------------------------------------+
-// | PEAR :: Benchmark |
-// +------------------------------------------------------------------------+
-// | Copyright (c) 2001-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>. |
-// +------------------------------------------------------------------------+
-// | This source file is subject to the New BSD license, That is bundled |
-// | with this package in the file LICENSE, and is available through |
-// | the world-wide-web at |
-// | http://www.opensource.org/licenses/bsd-license.php |
-// | If you did not receive a copy of the new BSDlicense and are unable |
-// | to obtain it through the world-wide-web, please send a note to |
-// | license@php.net so we can mail you a copy immediately. |
-// +------------------------------------------------------------------------+
-//
-// $Id: Iterate.php,v 1.12 2006/02/17 16:29:44 toggg Exp $
-//
-
-require_once 'Benchmark/Timer.php';
-
-/**
- * Provides timing and profiling information.
- *
- * Example 1
- *
- * <code>
- * <?php
- * require_once 'Benchmark/Iterate.php';
- *
- * $benchmark = new Benchmark_Iterate;
- *
- * function foo($string) {
- * print $string . '<br>';
- * }
- *
- * $benchmark->run(100, 'foo', 'test');
- * $result = $benchmark->get();
- * ?>
- * </code>
- *
- * Example 2
- *
- * <code>
- * <?php
- * require_once 'Benchmark/Iterate.php';
- *
- * $benchmark = new Benchmark_Iterate;
- *
- * class MyClass {
- * function foo($string) {
- * print $string . '<br>';
- * }
- * }
- *
- * $benchmark->run(100, 'myclass::foo', 'test');
- * $result = $benchmark->get();
- * ?>
- * </code>
- *
- * Example 3
- *
- * <code>
- * <?php
- * require_once 'Benchmark/Iterate.php';
- *
- * $benchmark = new Benchmark_Iterate;
- *
- * class MyClass {
- * function foo($string) {
- * print $string . '<br>';
- * }
- * }
- *
- * $o = new MyClass();
- *
- * $benchmark->run(100, 'o->foo', 'test');
- * $result = $benchmark->get();
- * ?>
- * </code>
- *
- * @author Sebastian Bergmann <sb@sebastian-bergmann.de>
- * @copyright Copyright © 2002-2005 Sebastian Bergmann <sb@sebastian-bergmann.de>
- * @license http://www.php.net/license/3_0.txt The PHP License, Version 3.0
- * @category Benchmarking
- * @package Benchmark
- */
-class Benchmark_Iterate extends Benchmark_Timer {
- /**
- * Benchmarks a function or method.
- *
- * @access public
- */
- function run() {
- $arguments = func_get_args();
- $iterations = array_shift($arguments);
- $function_name = array_shift($arguments);
-
- if (strstr($function_name, '::')) {
- $function_name = explode('::', $function_name);
- $objectmethod = $function_name[1];
- }
-
- if (strstr($function_name, '->')) {
- $function_name = explode('->', $function_name);
- $objectname = $function_name[0];
-
- $object = $GLOBALS[$objectname];
- $objectmethod = $function_name[1];
-
- for ($i = 1; $i <= $iterations; $i++) {
- $this->setMarker('start_' . $i);
- call_user_func_array(array($object, $function_name[1]), $arguments);
- $this->setMarker('end_' . $i);
- }
-
- return(0);
- }
-
- for ($i = 1; $i <= $iterations; $i++) {
- $this->setMarker('start_' . $i);
- call_user_func_array($function_name, $arguments);
- $this->setMarker('end_' . $i);
- }
- }
-
- /**
- * Returns benchmark result.
- *
- * $result[x ] = execution time of iteration x
- * $result['mean' ] = mean execution time
- * $result['iterations'] = number of iterations
- *
- * @return array
- * @access public
- */
- function get($simple_output = false) {
- $result = array();
- $total = 0;
-
- $iterations = count($this->markers)/2;
-
- for ($i = 1; $i <= $iterations; $i++) {
- $time = $this->timeElapsed('start_'.$i , 'end_'.$i);
-
- if (extension_loaded('bcmath')) {
- $total = bcadd($total, $time, 6);
- } else {
- $total = $total + $time;
- }
-
- if (!$simple_output) {
- $result[$i] = $time;
- }
- }
-
- if (extension_loaded('bcmath')) {
- $result['mean'] = bcdiv($total, $iterations, 6);
- } else {
- $result['mean'] = $total / $iterations;
- }
-
- $result['iterations'] = $iterations;
-
- return $result;
- }
-}
+<?php +// +// +------------------------------------------------------------------------+ +// | PEAR :: Benchmark | +// +------------------------------------------------------------------------+ +// | Copyright (c) 2001-2006 Sebastian Bergmann <sb@sebastian-bergmann.de>. | +// +------------------------------------------------------------------------+ +// | This source file is subject to the New BSD license, That is bundled | +// | with this package in the file LICENSE, and is available through | +// | the world-wide-web at | +// | http://www.opensource.org/licenses/bsd-license.php | +// | If you did not receive a copy of the new BSDlicense and are unable | +// | to obtain it through the world-wide-web, please send a note to | +// | license@php.net so we can mail you a copy immediately. | +// +------------------------------------------------------------------------+ +// +// $Id: Iterate.php,v 1.12 2006/02/17 16:29:44 toggg Exp $ +// + +require_once 'Benchmark/Timer.php'; + +/** + * Provides timing and profiling information. + * + * Example 1 + * + * <code> + * <?php + * require_once 'Benchmark/Iterate.php'; + * + * $benchmark = new Benchmark_Iterate; + * + * function foo($string) { + * print $string . '<br>'; + * } + * + * $benchmark->run(100, 'foo', 'test'); + * $result = $benchmark->get(); + * ?> + * </code> + * + * Example 2 + * + * <code> + * <?php + * require_once 'Benchmark/Iterate.php'; + * + * $benchmark = new Benchmark_Iterate; + * + * class MyClass { + * function foo($string) { + * print $string . '<br>'; + * } + * } + * + * $benchmark->run(100, 'myclass::foo', 'test'); + * $result = $benchmark->get(); + * ?> + * </code> + * + * Example 3 + * + * <code> + * <?php + * require_once 'Benchmark/Iterate.php'; + * + * $benchmark = new Benchmark_Iterate; + * + * class MyClass { + * function foo($string) { + * print $string . '<br>'; + * } + * } + * + * $o = new MyClass(); + * + * $benchmark->run(100, 'o->foo', 'test'); + * $result = $benchmark->get(); + * ?> + * </code> + * + * @author Sebastian Bergmann <sb@sebastian-bergmann.de> + * @copyright Copyright © 2002-2005 Sebastian Bergmann <sb@sebastian-bergmann.de> + * @license http://www.php.net/license/3_0.txt The PHP License, Version 3.0 + * @category Benchmarking + * @package Benchmark + */ +class Benchmark_Iterate extends Benchmark_Timer { + /** + * Benchmarks a function or method. + * + * @access public + */ + function run() { + $arguments = func_get_args(); + $iterations = array_shift($arguments); + $function_name = array_shift($arguments); + + if (strstr($function_name, '::')) { + $function_name = explode('::', $function_name); + $objectmethod = $function_name[1]; + } + + if (strstr($function_name, '->')) { + $function_name = explode('->', $function_name); + $objectname = $function_name[0]; + + $object = $GLOBALS[$objectname]; + $objectmethod = $function_name[1]; + + for ($i = 1; $i <= $iterations; $i++) { + $this->setMarker('start_' . $i); + call_user_func_array(array($object, $function_name[1]), $arguments); + $this->setMarker('end_' . $i); + } + + return(0); + } + + for ($i = 1; $i <= $iterations; $i++) { + $this->setMarker('start_' . $i); + call_user_func_array($function_name, $arguments); + $this->setMarker('end_' . $i); + } + } + + /** + * Returns benchmark result. + * + * $result[x ] = execution time of iteration x + * $result['mean' ] = mean execution time + * $result['iterations'] = number of iterations + * + * @return array + * @access public + */ + function get($simple_output = false) { + $result = array(); + $total = 0; + + $iterations = count($this->markers)/2; + + for ($i = 1; $i <= $iterations; $i++) { + $time = $this->timeElapsed('start_'.$i , 'end_'.$i); + + if (extension_loaded('bcmath')) { + $total = bcadd($total, $time, 6); + } else { + $total = $total + $time; + } + + if (!$simple_output) { + $result[$i] = $time; + } + } + + if (extension_loaded('bcmath')) { + $result['mean'] = bcdiv($total, $iterations, 6); + } else { + $result['mean'] = $total / $iterations; + } + + $result['iterations'] = $iterations; + + return $result; + } +} |