PFSenseDevWiki : ProfilingPHP

PfSenseDevHome :: Categories :: PageIndex :: RecentChanges :: RecentlyCommented :: Login/Register

Profiling PHP


PEAR's Benchmark_Timer can be used to profile PHP code. To use:

Fetch http://pfsense.org/~cmb/tools/profiling/Timer.php.txt to /etc/inc/Timer.php

Add code like the following to the page you wish to profile.

require_once("Timer.php");
$timer = new Benchmark_Timer;

$timer->start();


Then add markers to time execution between specific points in the code.

$timer->setMarker('marker1');


When finished, the following code stops the timer and logs the time of each marker and the total time to the System log.

$timer->stop();
$profiling = $timer->getProfiling();
foreach($profiling as $time) {
	    log_error("profiling: {$time['name']} : {$time['diff']}");
}
log_error("Total time:  {$time['total']}");


Example Usage


http://pfsense.org/~cmb/tools/profiling/interfaces_vlan_edit.php.txt shows Benchmark_Timer in use.

this is the resultant log file
http://pfsense.org/~cmb/tools/profiling/profiling_logs.png

marker times are the time since the previous marker point. i.e. it took 6.08 seconds to get from marker9 to marker10.

There are no comments on this page. [Add comment]

Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by Wikka Wakka Wiki 1.1.6.3
Page was generated in 0.0341 seconds