tools/performance/layout/collect.pl

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 #!/usr/bin/perl -w
     2 # This Source Code Form is subject to the terms of the Mozilla Public
     3 # License, v. 2.0. If a copy of the MPL was not distributed with this
     4 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
     7 %::Sites = ();
     9 @::Categories = (
    10     Content,
    11     Reflow,
    12     Frame,
    13     Style,
    14     Parse,
    15     DTD,
    16     Tokenize,
    17     Total
    18     );
    20 $::CurrentSite = "";
    22 LINE: while (<>) {
    23     if (/^\*\*\* Timing layout processes on url: '(.*)'/) {
    24         # This will generate a URL that looks something like:
    25         #
    26         #   file:///foo/bar/website/index.html
    27         #
    28         # So, we'll parse out the ``website'' part...
    29         my @parts = split('/', $1);
    30         $::CurrentSite = $parts[$#parts - 1];
    32         if (! $::Sites{$::CurrentSite}) {
    33             $::Sites{$::CurrentSite} = {};
    34         }
    35         next LINE;
    36     }
    38     next LINE unless $::CurrentSite;
    40     CATEGORY: foreach $category (@::Categories) {
    41         next CATEGORY unless (/$category/);
    43         # The "real time" is indicated in HH:MM:SS.mmmm format
    44         my ($h,$m,$s,$ms) = /Real time (..):(..):(..)\.(....)/;
    45         my $real = $ms;
    46         $real += $s * 1000;
    47         $real += $m * 1000 * 60;
    48         $real += $h * 1000 * 60 * 60;
    50         # The "CPU time" is indicated in m.uuu format
    51         my ($cpu) = /CP time (.*\....)/;
    53         my $site = $::Sites{$::CurrentSite};
    54         if (! $site->{$category}) {
    55             $site->{$category} = { Count => 0, Real => 0, CPU => 0, Real2 => 0, CPU2 => 0 };
    56         }
    58         $site->{$category}->{Count} += 1;
    59         $site->{$category}->{Real}  += $real;
    60         $site->{$category}->{CPU}   += $cpu;
    61         $site->{$category}->{Real2} += $real * $real;
    62         $site->{$category}->{CPU2}  += $cpu * $cpu;
    63     }
    64 }
    66 my $bgcolor0 = '#999999';
    67 my $bgcolor1 = '#777777';
    69 my $bgcolor;
    71 print "<table border='0' cellpadding='2' cellspacing='0'>\n";
    73 print "<tr>\n";
    74 print "  <td rowspan='2' valign='bottom'>Site</td>\n";
    76 $bgcolor = $bgcolor0;
    77 foreach $category (@::Categories) {
    78     print "  <td bgcolor='$bgcolor' align='center' colspan='4'>$category</td>\n";
    79     $bgcolor = ($bgcolor eq $bgcolor0) ? $bgcolor1 : $bgcolor0;
    80 }
    81 print "</tr>\n";
    83 print "<tr>\n";
    85 $bgcolor = $bgcolor0;
    86 foreach $category (@::Categories) {
    87     print "  <td bgcolor='$bgcolor' align='center' colspan='2'>CPU</td> <td bgcolor='$bgcolor' align='center' colspan='2'>Real</td>\n";
    88     $bgcolor = ($bgcolor eq $bgcolor0) ? $bgcolor1 : $bgcolor0;
    89 }
    90 print "</tr>\n";
    92 foreach $sitename (sort(keys(%::Sites))) {
    93     print "<tr>\n";
    95     my $site = $::Sites{$sitename};
    96     print "  <td>$sitename</td>\n";
    98     $bgcolor = $bgcolor0;
    99     foreach $category (@::Categories) {
   100         my $count = $site->{$category}->{Count};
   101         my $real  = $site->{$category}->{Real};
   102         my $cpu   = $site->{$category}->{CPU};
   103         my $real2 = $site->{$category}->{Real2};
   104         my $cpu2  = $site->{$category}->{CPU2};
   106         my $realdev = 0;
   107         my $cpudev = 0;
   109         if ($count) {
   110             if ($count > 1) {
   111                 $realdev = sqrt( ( $real2 * $count - $real * $real ) / ( $count * ( $count - 1 ) ) );
   112                 $cpudev  = sqrt( ( $cpu2 * $count - $cpu * $cpu ) / ( $count * ( $count - 1 ) ) );
   113             }
   115             $real /= $count;
   116             $cpu /= $count;
   117         }
   118         else {
   119             $count = 0;
   120             $real = 0;
   121             $cpu = 0;
   122         }
   124         printf "  <td bgcolor='$bgcolor' align='right'>%0.2lf</td><td bgcolor='$bgcolor' align='left'>&plusmn;%0.2lf</td>\n", $cpu, $cpudev;
   125         printf "  <td bgcolor='$bgcolor' align='right'>%0.2lf</td><td bgcolor='$bgcolor' align='left'>&plusmn;%0.2lf</td>", $real, $realdev;
   127         $bgcolor = ($bgcolor eq $bgcolor0) ? $bgcolor1 : $bgcolor0;
   128     }
   130     print "</tr>\n";
   131 }
   133 print "</table>\n";

mercurial