⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 profiler.php

📁 Joomla!是一套获得过多个奖项的内容管理系统(Content Management System, CMS)。Joomla!采用PHP+MySQL数据库开发
💻 PHP
字号:
<?php/*** @version		$Id: profiler.php 10707 2008-08-21 09:52:47Z eddieajau $* @package		Joomla.Framework* @subpackage	Error* @copyright	Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.* @license		GNU/GPL, see LICENSE.php* Joomla! is free software. This version may have been modified pursuant* to the GNU General Public License, and as distributed it includes or* is derivative of works licensed under the GNU General Public License or* other free or open source software licenses.* See COPYRIGHT.php for copyright notices and details.*/// Check to ensure this file is within the rest of the frameworkdefined('JPATH_BASE') or die();/** * Utility class to assist in the process of benchmarking the execution * of sections of code to understand where time is being spent. * * @package 	Joomla.Framework * @subpackage	Error * @since 1.0 */class JProfiler extends JObject{	/**	 *	 * @var int	 */	var $_start = 0;	/**	 *	 * @var string	 */	var $_prefix = '';	/**	 *	 * @var array	 */	var $_buffer= null;	/**	 * Constructor	 *	 * @access protected	 * @param string Prefix for mark messages	 */	function __construct( $prefix = '' )	{		$this->_start = $this->getmicrotime();		$this->_prefix = $prefix;		$this->_buffer = array();	}	/**	 * Returns a reference to the global Profiler object, only creating it	 * if it doesn't already exist.	 *	 * This method must be invoked as:	 * 		<pre>  $browser = & JProfiler::getInstance( $prefix );</pre>	 *	 * @access public	 * @param string Prefix used to distinguish profiler objects.	 * @return JProfiler  The Profiler object.	 */	function &getInstance($prefix = '')	{		static $instances;		if (!isset($instances)) {			$instances = array();		}		if (empty($instances[$prefix])) {			$instances[$prefix] = new JProfiler($prefix);		}		return $instances[$prefix];	}	/**	 * Output a time mark	 *	 * The mark is returned as text enclosed in <div> tags	 * with a CSS class of 'profiler'.	 *	 * @access public	 * @param string A label for the time mark	 * @return string Mark enclosed in <div> tags	 */	function mark( $label )	{		$mark	= $this->_prefix." $label: ";		$mark	.= sprintf('%.3f', $this->getmicrotime() - $this->_start) . ' seconds';		if ( function_exists('memory_get_usage') ) {			$mark	.= ', '.sprintf('%0.2f', memory_get_usage() / 1048576 ).' MB';		}		$this->_buffer[] = $mark;		return $mark;	}	/**	 * Get the current time.	 *	 * @access public	 * @return float The current time	 */	function getmicrotime()	{		list( $usec, $sec ) = explode( ' ', microtime() );		return ((float)$usec + (float)$sec);	}	/**	 * Get information about current memory usage.	 *	 * @access public	 * @return int The memory usage	 * @link PHP_MANUAL#memory_get_usage	 */	function getMemory()	{		static $isWin;		if (function_exists( 'memory_get_usage' )) {			return memory_get_usage();		} else {			// Determine if a windows server			if (is_null( $isWin )) {				$isWin = (substr(PHP_OS, 0, 3) == 'WIN');			}			// Initialize variables			$output = array();			$pid = getmypid();			if ($isWin) {				// Windows workaround				@exec( 'tasklist /FI "PID eq ' . $pid . '" /FO LIST', $output );				if (!isset($output[5])) {					$output[5] = null;				}				return substr( $output[5], strpos( $output[5], ':' ) + 1 );			} else {				@exec("ps -o rss -p $pid", $output);				return $output[1] *1024;			}		}	}	/**	 * Get all profiler marks.	 *	 * Returns an array of all marks created since the Profiler object	 * was instantiated.  Marks are strings as per {@link JProfiler::mark()}.	 *	 * @access public	 * @return array Array of profiler marks	 */	function getBuffer() {		return $this->_buffer;	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -