legacy open qoob cms

a content management system built with the open qoob framework

qoob/utils/benchmark.php


<?php
/**
 * benchmark class
 * this class enables you to mark points and calculate the 
 * time difference between them.
 * 
 * @author xero harrison <x@xero.nu>
 * @copyright (cc) creative commons - attribution-shareAlike 3.0 unported
 * @version 1.01
 * @package qoob
 * @subpackage utils
 */
class benchmark {
	/**
	 * @var array $markers the points in time that are used to benchmark
	 */
	var $markers = array();
	/**
	 * set a benchmark marker
	 * multiple calls to this function can be made so that several
	 * execution points can be timed.
	 *
	 * @param	string	$name	name of the marker
	 * @return	void
	 */
	function mark($name) {
		$this->markers[$name] = microtime();
	}
	
	/**
	 * elapsed time function
	 * calculates the time difference between two marked points.
	 *
	 * @param	string 	$point1		a particular marked point
	 * @param	string 	$point2		a particular marked point
	 * @param	int 	$decimals	the number of decimal places
	 * @return	mixed
	 */
	function elapsed_time($point1 = "", $point2 = "", $decimals = 4) {
		if ($point1 == "") {
			return "";
		}

		if (!isset($this->markers[$point1])) {
			return "";
		}

		if (!isset($this->marker[$point2])) {
			$this->markers[$point2] = microtime();
		}

		list($sm, $ss) = explode(" ", $this->markers[$point1]);
		list($em, $es) = explode(" ", $this->markers[$point2]);

		return number_format(($em + $es) - ($sm + $ss), $decimals);
	}
}

?>

Download

raw zip tar