diff --git a/e107_themes/templates/footer_default.php b/e107_themes/templates/footer_default.php index 8f96df693..b7d7ce525 100644 --- a/e107_themes/templates/footer_default.php +++ b/e107_themes/templates/footer_default.php @@ -1,9 +1,9 @@ -Bump('Lost Traffic Counters'); } -unset($fh); - - if(varset($e107_popup)!=1){ // - // B Send footer template, stop timing, send simple page stats + // B.1 Clear cache (admin-only) + // + + // + // B.2 Send footer template, stop timing, send simple page stats // parseheader(($ph ? $cust_footer : $FOOTER)); - + $eTimingStop = microtime(); global $eTimingStart; - $rendertime = number_format($eTraffic->TimeDelta( $eTimingStart, $eTimingStop ), 4); - $db_time = number_format($db_time,4); + $clockTime = $eTraffic->TimeDelta( $eTimingStart, $eTimingStop ); + $dbPercent = 100.0 * $db_time / $clockTime; + // Format for display or logging + $rendertime = number_format($clockTime, 2); // Clock time during page render + $db_time = number_format($db_time,2); // Clock time in DB render + $dbPercent = number_format($dbPercent,0); // DB as percent of clock + $memuse = $e107->get_memory_usage(); // Memory at end, in B/KB/MB/GB ;) $rinfo = ''; - if($pref['displayrendertime']){ $rinfo .= "Render time: {$rendertime} second(s); {$db_time} of that for queries. "; } + if ( function_exists( 'getrusage' ) ) { + $ru = getrusage(); + $cpuUTime = $ru['ru_utime.tv_sec'] + ($ru['ru_utime.tv_usec'] * 1e-6); + $cpuSTime = $ru['ru_stime.tv_sec'] + ($ru['ru_stime.tv_usec'] * 1e-6); + $cpuUStart = $eTimingStartCPU['ru_utime.tv_sec'] + ($eTimingStartCPU['ru_utime.tv_usec'] * 1e-6); + $cpuSStart = $eTimingStartCPU['ru_stime.tv_sec'] + ($eTimingStartCPU['ru_stime.tv_usec'] * 1e-6); + $cpuStart = $cpuUStart + $cpuSStart; + $cpuTot = $cpuUTime + $cpuSTime; + $cpuTime = $cpuTot - $cpuStart; + $cpuPct = 100.0 * $cpuTime / $rendertime; /* CPU load during known clock time */ + // Format for display or logging (Uncomment as needed for logging) + //$cpuUTime = number_format($cpuUTime, 3); // User cpu + //$cpuSTime = number_format($cpuSTime, 3); // System cpu + //$cpuTot = number_format($cpuTot, 3); // Total (User+System) + $cpuStart = number_format($cpuStart, 3); // Startup time (i.e. CPU used before class2.php) + $cpuTime = number_format($cpuTime, 3); // CPU while we were measuring the clock (cpuTot-cpuStart) + $cpuPct = number_format($cpuPct,0); // CPU Load (CPU/Clock) + } + // + // Here's a good place to log CPU usage in case you want graphs and/or your host cares about that + // e.g. (on a typical vhosted linux host) + // + // $logname = "/home/mysite/public_html/queryspeed.log"; + // $logfp = fopen($logname, 'a+'); fwrite($logfp, "$cpuTot,$cpuPct,$cpuStart,$rendertime,$db_time\n"); fclose($logfp); + + if($pref['displayrendertime']){ + $rinfo .= "Render time: "; + if (isset($cpuTime)) { + $rinfo .= "{$cpuTime} cpu sec ({$cpuPct}% load, {$cpuStart} startup). Clock: "; + } + $rinfo .= "{$rendertime} sec ({$dbPercent}% for queries). "; + } if($pref['displaysql']){ $rinfo .= "DB queries: ".$sql -> db_QueryCount().". "; } - if(isset($pref['display_memory_usage']) && $pref['display_memory_usage']){ $rinfo .= "Memory Usage: ".$e107->get_memory_usage(); } + if(isset($pref['display_memory_usage']) && $pref['display_memory_usage']){ $rinfo .= "Memory: ".$memuse; } if(isset($pref['displaycacheinfo']) && $pref['displaycacheinfo']){ $rinfo .= $cachestring."."; } - echo ($rinfo ? "\n