From 00c6a587079f847843d818be18837a767d75c83a Mon Sep 17 00:00:00 2001 From: Domas Mituzas Date: Fri, 30 Dec 2005 23:16:14 +0000 Subject: [PATCH] * Fix ::close() * Properly deal with "-setup" and "-total" * Extend time functions a bit --- includes/ProfilerSimple.php | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/includes/ProfilerSimple.php b/includes/ProfilerSimple.php index 5a7c8b9c6e..9269df592d 100755 --- a/includes/ProfilerSimple.php +++ b/includes/ProfilerSimple.php @@ -9,6 +9,23 @@ * @package MediaWiki */ class ProfilerSimple extends Profiler { + function ProfilerSimple() { + global $wgRequestTime,$wgRUstart; + if (!empty($wgRequestTime) && !empty($wgRUstart)) { + $this->mWorkStack[] = array( '-total', 0, $this->getTime($wgRequestTime),$this->getCpuTime($wgRUstart)); + + $elapsedcpu = $this->getCpuTime() - $this->getCpuTime($wgRUstart); + $elapsedreal = $this->getTime() - $this->getTime($wgRequestTime); + + $entry =& $this->mCollated["-setup"]; + $entry['cpu'] += $elapsedcpu; + $entry['cpu_sq'] += $elapsedcpu*$elapsedcpu; + $entry['real'] += $elapsedreal; + $entry['real_sq'] += $elapsedreal*$elapsedreal; + $entry['count']++; + } + } + function profileIn($functionname) { global $wgDebugFunctionEntry; if ($wgDebugFunctionEntry && function_exists('wfDebug')) { @@ -33,6 +50,7 @@ class ProfilerSimple extends Profiler { } else { if ($functionname == 'close') { $message = "Profile section ended by close(): {$ofname}"; + $functionname = $ofname; wfDebug( "$message\n" ); } elseif ($ofname != $functionname) { @@ -57,13 +75,16 @@ class ProfilerSimple extends Profiler { /* Implement in output subclasses */ } - function getCpuTime() { - $ru=getrusage(); + function getCpuTime($ru=null) { + if ($ru==null) + $ru=getrusage(); return ($ru['ru_utime.tv_sec']+$ru['ru_stime.tv_sec']+($ru['ru_utime.tv_usec']+$ru['ru_stime.tv_usec'])*1e-6); } - function getTime() { - list($a,$b)=explode(" ",microtime()); + function getTime($time=null) { + if ($time==null) + $time=microtime(); + list($a,$b)=explode(" ",$time); return (float)($a+$b); } } -- 2.20.1