#!/usr/bin/perl -w %::Sites = (); @::Categories = ( Content, Reflow, Frame, Style, Parse, DTD, Tokenize, Total ); $::CurrentSite = ""; LINE: while (<>) { if (/^\*\*\* Timing layout processes on url: '(.*)'/) { # This will generate a URL that looks something like: # # file:///foo/bar/website/index.html # # So, we'll parse out the ``website'' part... my @parts = split('/', $1); $::CurrentSite = $parts[$#parts - 1]; if (! $::Sites{$::CurrentSite}) { $::Sites{$::CurrentSite} = {}; } next LINE; } next LINE unless $::CurrentSite; CATEGORY: foreach $category (@::Categories) { next CATEGORY unless (/$category/); # The "real time" is indicated in HH:MM:SS.mmmm format my ($h,$m,$s,$ms) = /Real time (..):(..):(..)\.(....)/; my $real = $ms; $real += $s * 1000; $real += $m * 1000 * 60; $real += $h * 1000 * 60 * 60; # The "CPU time" is indicated in m.uuu format my ($cpu) = /CP time (.*\....)/; my $site = $::Sites{$::CurrentSite}; if (! $site->{$category}) { $site->{$category} = { Count => 0, Real => 0, CPU => 0, Real2 => 0, CPU2 => 0 }; } $site->{$category}->{Count} += 1; $site->{$category}->{Real} += $real; $site->{$category}->{CPU} += $cpu; $site->{$category}->{Real2} += $real * $real; $site->{$category}->{CPU2} += $cpu * $cpu; } } my $bgcolor0 = '#999999'; my $bgcolor1 = '#777777'; my $bgcolor; print "\n"; print "\n"; print " \n"; $bgcolor = $bgcolor0; foreach $category (@::Categories) { print " \n"; $bgcolor = ($bgcolor eq $bgcolor0) ? $bgcolor1 : $bgcolor0; } print "\n"; print "\n"; $bgcolor = $bgcolor0; foreach $category (@::Categories) { print " \n"; $bgcolor = ($bgcolor eq $bgcolor0) ? $bgcolor1 : $bgcolor0; } print "\n"; foreach $sitename (sort(keys(%::Sites))) { print "\n"; my $site = $::Sites{$sitename}; print " \n"; $bgcolor = $bgcolor0; foreach $category (@::Categories) { my $count = $site->{$category}->{Count}; my $real = $site->{$category}->{Real}; my $cpu = $site->{$category}->{CPU}; my $real2 = $site->{$category}->{Real2}; my $cpu2 = $site->{$category}->{CPU2}; my $realdev = 0; my $cpudev = 0; if ($count) { if ($count > 1) { $realdev = sqrt( ( $real2 * $count - $real * $real ) / ( $count * ( $count - 1 ) ) ); $cpudev = sqrt( ( $cpu2 * $count - $cpu * $cpu ) / ( $count * ( $count - 1 ) ) ); } $real /= $count; $cpu /= $count; } else { $count = 0; $real = 0; $cpu = 0; } printf " \n", $cpu, $cpudev; printf " ", $real, $realdev; $bgcolor = ($bgcolor eq $bgcolor0) ? $bgcolor1 : $bgcolor0; } print "\n"; } print "
Site$category
CPU Real
$sitename%0.2lf±%0.2lf%0.2lf±%0.2lf
\n";