tools/performance/layout/Averagetable2.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 ##########################################################################################
     2 #
     3 # This Source Code Form is subject to the terms of the Mozilla Public
     4 # License, v. 2.0. If a copy of the MPL was not distributed with this
     5 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
     7 #------------------------------------------------------------------------------
     8 sub debug_print {
     9   foreach $str (@_){
    10 #    print( $str );
    11   }
    12 }
    13 #------------------------------------------------------------------------------
    14 # get the arguments:
    15 #------------------------------------------------------------------------------
    16 @ARGV;
    17 $UrlName = $ARGV[0];
    18 $logFile = $ARGV[1];
    19 $NumOfSites = $ARGV[2];
    20 $buildRoot = $ARGV[3];
    21 $LinkURL = $ARGV[4];
    22 $useClockTime = $ARGV[5];
    23 #$buildIDFile = '< '.$buildRoot.'\bin\chrome\locales\en-US\navigator\locale\navigator.dtd';
    24 #$buildIDFile = "";
    25 debug_print( "Arguments:[ $UrlName | $logFile | $NumOfSites | $buildRoot | $LinkURL | $useClockTime]\n");
    27 #------------------------------------------------------------------------------
    28 # Open the ID file and get the build ID
    29 #------------------------------------------------------------------------------
    31 #open (XUL_FILE, $buildIDFile) or die "Cannot open BuildID file $buildIDFile (AverageTable2.pl)\n";
    32 #$BuildNo = "";
    33 #$LineList;
    34 #while (<XUL_FILE>)
    35 #{
    36 #  $ThisLine = $_;
    37 #  chop ($ThisLine);
    38 #  if (/Build ID/){
    39 #    @LineList = split (/\"/, $ThisLine);
    40 #    $BuildNo = $LineList[1];
    41 #  }
    42 #}
    43 #@LineList = split (/ /, $BuildNo);
    44 #$BuildNo = $LineList[2];
    45 #$BuildNo =~ s/"//g;
    46 #$BuildNo =~ s/[>]//g;
    47 #debug_print ("Build Number: $BuildNo\n");
    48 #close( XUL_FILE );
    50 #------------------------------------------------------------------------------
    51 # Open the logfile (input)
    52 # and the deviation file (output,append)
    53 #------------------------------------------------------------------------------
    54 open (LOG_FILE, "< $logFile") or die "Logfile $logFile could not be opened";
    56 #------------------------------------------------------------------------------
    57 # Deviation file:
    58 # Flat file used to calculate and display deviation between latest and
    59 # week old builds data.
    60 #
    61 # Format of flat file is attributes separated by commas with no spaces as follows:
    62 # BuildNo,date,url,parsingtime,parsingper,contenttime,contentper,frametime,
    63 # frameper,styletime,styleper,reflowtime,reflowper,totallayouttime,totallayoutper,
    64 # totalpageloadtime
    65 ($Second, $Minute, $Hour, $DayOfMonth, $Month, $Year, $WeekDay, $DayOfYear, $IsDST) = localtime (time);
    66 $RealMonth = $Month + 1;
    67 $Year += 1900;
    68 $BuildNo = $RealMonth.$DayOfMonth.$Year;
    69 $file = $BuildNo.".dat";
    70 open (DEVIATION, ">> $file") or die "Deviation file could not be opened";
    72 # add entry to the deviation file
    73 ($Second, $Minute, $Hour, $DayOfMonth, $Month, $Year, $WeekDay, $DayOfYear, $IsDST) = localtime (time);
    74 $RealMonth = $Month + 1;
    75 $Year += 1900;
    76 $date2 = $RealMonth.$DayOfMonth.$Year;
    77 print (DEVIATION "$BuildNo,$date2,$UrlName,");
    79 #------------------------------------------------------------------------------
    80 # local variables
    81 #------------------------------------------------------------------------------
    82 @List;
    83 $Content_Time = 0;
    84 $Reflow_Time = 0;
    85 $FrameAndStyle_Time = 0;
    86 $Frame_Time = 0;
    87 $Style_Time = 0;
    88 $Parse_Time = 0;
    89 $TotalPageLoad_Time = 0;
    90 $TotalLayout_Time = 0;
    91 $Avg_Content_Time = 0;
    92 $Avg_Reflow_Time = 0;
    93 $Avg_FrameAndStyle_Time = 0;
    94 $Avg_Frame_Time = 0;
    95 $Avg_Style_Time = 0;
    96 $Avg_Parse_Time = 0;
    97 $Avg_TotalPageLoad_Time = 0;
    98 $Avg_TotalLayout_Time = 0;
    99 $Content_Time_Percentage = 0;
   100 $Reflow_Time_Percentage = 0;
   101 $FrameAndStyle_Time_Percentage = 0;
   102 $Frame_Time_Percentage = 0;
   103 $Style_Time_Percentage = 0;
   104 $Parse_Time_Percentage = 0;
   105 $TotalLayout_Time_Percentage = 0;
   106 $Avg_Content_Time_Percentage = 0;
   107 $Avg_Reflow_Time_Percentage = 0;
   108 $Avg_FrameAndStyle_Time_Percentage = 0;
   109 $Avg_Frame_Time_Percentage = 0;
   110 $Avg_Style_Time_Percentage = 0;
   111 $Avg_Parse_Time_Percentage = 0;
   112 $Avg_TotalLayout_Time_Percentage = 0;
   113 $Num_Entries = 0;
   114 $valid = 0;
   115 # $WebShell;
   116 $temp;
   117 $url;
   118 $Content_Flag = 0;
   119 $Reflow_Flag = 0;
   120 $Style_Flag = 0;
   121 $Parse_Flag = 0;
   123 #------------------------------------------------------------------------------
   124 # Management of averages via average.txt file
   125 #  NOTE: the averag.txt file is used to accumulate all performance times 
   126 #        and keep track of the number of entries. When completed, the footer.pl 
   127 #        script does the averaging by dividing the accumulated times by the
   128 #        number of entries
   129 #------------------------------------------------------------------------------
   131 # if first site, delete any old Average file (in case the caller did not)
   132 #
   133 if ( $NumOfSites == 1 ){
   134   unlink( "Average.txt" );
   135   debug_print( "Deleting file Average.txt\n" );
   136 }
   137 # load the averages data so we can accumulate it
   138 #
   139 if ( -r "Average.txt" ) {
   140   open (AVERAGE, "< Average.txt");
   141   while( <AVERAGE> ){
   142     $ThisLine = $_;
   143     chop ($ThisLine);
   145     if( /Num Entries:/ ){
   146        @list = split( / /, $ThisLine );
   147       $Num_Entries = $list[2];
   148       debug_print( "Num Entries: $Num_Entries\n" );
   149     }
   150     if( /Avg Parse:/ ){
   151       @list = split( / /, $ThisLine );
   152       $Avg_Parse_Time = $list[2];
   153       debug_print( "Avg Parse: $Avg_Parse_Time\n" );
   154     }  
   155     if( /Per Parse:/ ){
   156       @list = split( / /, $ThisLine );
   157       $Avg_Parse_Time_Percentage = $list[2];
   158       debug_print( "Per Parse: $Avg_Parse_Time_Percentage\n" );
   159     }  
   160     if( /Avg Content:/ ){
   161       @list = split( / /, $ThisLine );
   162       $Avg_Content_Time = $list[2];
   163       debug_print( "Avg Content: $Avg_Content_Time\n" );
   164     }  
   165     if( /Per Content:/ ){
   166       @list = split( / /, $ThisLine );
   167       $Avg_Content_Time_Percentage = $list[2];
   168       debug_print( "Per Content: $Avg_Content_Time_Percentage\n" );
   169     }  
   170     if( /Avg Frame:/ ){
   171       @list = split( / /, $ThisLine );
   172       $Avg_Frame_Time = $list[2];
   173       debug_print( "Avg Frame: $Avg_Frame_Time\n" );
   174     }  
   175     if( /Per Frame:/ ){
   176       @list = split( / /, $ThisLine );
   177       $Avg_Frame_Time_Percentage = $list[2];
   178       debug_print( "Per Frame: $Avg_Frame_Time_Percentage\n" );
   179     }  
   180     if( /Avg Style:/ ){
   181       @list = split( / /, $ThisLine );
   182       $Avg_Style_Time = $list[2];
   183       debug_print( "Avg Style: $Avg_Style_Time\n" );
   184     }  
   185     if( /Per Style:/ ){
   186       @list = split( / /, $ThisLine );
   187       $Avg_Style_Time_Percentage = $list[2];
   188       debug_print( "Per Style: $Avg_Style_Time_Percentage\n" );
   189     }  
   190     if( /Avg Reflow:/ ){
   191       @list = split( / /, $ThisLine );
   192       $Avg_Reflow_Time = $list[2];
   193       debug_print( "Avg Reflow: $Avg_Reflow_Time\n" );
   194     }  
   195     if( /Per Reflow:/ ){
   196       @list = split( / /, $ThisLine );
   197       $Avg_Reflow_Time_Percentage = $list[2];
   198       debug_print( "Per Reflow: $Avg_Reflow_Time_Percentage\n" );
   199     }  
   200     if( /Avg TotalLayout:/ ){
   201       @list = split( / /, $ThisLine );
   202       $Avg_TotalLayout_Time = $list[2];
   203       debug_print( "Avg TotalLayout: $Avg_TotalLayout_Time\n" );
   204     }  
   205     if( /Per Layout:/ ){
   206       @list = split( / /, $ThisLine );
   207       $Avg_TotalLayout_Time_Percentage = $list[2];
   208       debug_print( "Per Layout: $Avg_TotalLayout_Time_Percentage\n" );
   209     }  
   210     if( /Avg PageLoad:/ ){
   211       @list = split( / /, $ThisLine );
   212       $Avg_TotalPageLoad_Time = $list[2];
   213       debug_print( "Avg PageLoad: $Avg_TotalPageLoad_Time\n" );
   214     }  
   215   }
   216   print (AVERAGE "Avg PageLoad: $Avg_TotalPageLoad_Time\n");
   217   close (AVERAGE);
   218 }
   220 #------------------------------------------------------------------------------
   221 # now run through the log file and process the performance data
   222 #------------------------------------------------------------------------------
   223 $IsValidURL = 0;
   224 while (<LOG_FILE>)
   225 {
   226   $ThisLine = $_;
   227   chop ($ThisLine);
   229   if (/Timing layout/)
   230   {
   231 #    @List = split (/webshell: /, $ThisLine);
   232 #    $WebShell = $List[1];
   233 #    $WebShell = "(webBrowserChrome=".$WebShell;
   234 #    $WebShell = $WebShell."):";
   235 #    debug_print( "$WebShell\n" );
   237     @List = split (/'/, $ThisLine);
   238     $url = $List[1];
   239     debug_print( "(URI: $url) " );
   240     if( $url =~ /$LinkURL/ ){
   241       debug_print( "$url is the one!\n" );
   242       $IsValidURL = 1;
   243     } else {
   244       debug_print( "Skipping URL $url\n" );
   245       $IsValidURL = 0;
   246     }
   247   }
   248   if (/Content/){
   249     if ($IsValidURL == 1){
   250       @List = split (/ /, $ThisLine);
   251       if($useClockTime){
   252         @clockTimeList = split(/:/, $List[6]);
   253         $Content_Time += $clockTimeList[2];
   254       } else {
   255         $Content_Time += $List[9];
   256       }
   257       $Content_Flag = 1;
   258       debug_print( "Content Time: $Content_Time\n" );
   259     }
   260   }
   261   if (/Reflow/){
   262     if ($IsValidURL == 1){
   263       @List = split (/ /, $ThisLine);
   264       if($useClockTime){
   265         @clockTimeList = split(/:/, $List[5]);
   266         $Reflow_Time += $clockTimeList[2];
   267       } else {
   268         $Reflow_Time += $List[8];
   269       }
   270       $Reflow_Flag = 1;
   271       debug_print( "Reflow Time: $Reflow_Time\n" );
   272     }
   273   }
   274   if (/Frame construction plus/){
   275     if ($IsValidURL == 1){
   276       @List = split (/ /, $ThisLine);
   277       if($useClockTime){
   278         @clockTimeList = split(/:/, $List[9]);
   279         $FrameAndStyle_Time += $clockTimeList[2];
   280       } else {
   281         $FrameAndStyle_Time += $List[12];
   282       }
   283       debug_print( "Frame and Style Time: $FrameAndStyle_Time\n" );
   284     }
   285   }
   286   if (/Style/){
   287     if ($IsValidURL == 1){
   288       @List = split (/ /, $ThisLine);
   289       if($useClockTime){
   290         @clockTimeList = split(/:/, $List[6]);
   291         $Style_Time += $clockTimeList[2];
   292       } else {
   293         $Style_Time += $List[9];
   294       }
   295       $Style_Flag = 1;
   296       debug_print( "Style Time: $Style_Time\n" );
   297     }
   298   }
   299   if (/Parse/){
   300     if ($IsValidURL == 1){
   301       @List = split (/ /, $ThisLine);
   302       if($useClockTime){
   303         @clockTimeList = split(/:/, $List[5]);
   304         $Parse_Time += $clockTimeList[2];
   305       } else {
   306         $Parse_Time += $List[8];
   307       }
   308       $Parse_Flag = 1;
   309       debug_print( "Parse Time: $Parse_Time\n" );
   310     }
   311   }
   312   if (/Total/){
   313     if ($IsValidURL == 1){
   314       @List = split (/ /, $ThisLine);
   315       $temp = $List[6];
   316       if (
   317 #          ($temp == $WebShell) && 
   318           ($Parse_Flag == 1) && 
   319           ($Content_Flag == 1) && 
   320           ($Reflow_Flag == 1) && 
   321           ($Style_Flag == 1)){
   322         $TotalPageLoad_Time = $List[12];
   323         debug_print( "Total Page Load_Time Time: $TotalPageLoad_Time\n" );
   324         $Content_Flag = 0;
   325         $Reflow_Flag = 0;
   326         $Style_Flag = 0;
   327         $Parse_Flag = 0;
   328       }
   329     }
   330   }
   331 }
   333 #------------------------------------------------------------------------------
   334 # Calculate the significant time values
   335 #------------------------------------------------------------------------------
   336 $Frame_Time = $FrameAndStyle_Time - $Style_Time;
   337 if($Frame_Time < 0.0){
   338   print( "\n***** ERROR: negative FrameTime *****\n");
   339   $Frame_Time = 0;
   340 }
   341 $TotalLayout_Time = $Content_Time + $Reflow_Time + $Frame_Time + $Style_Time + $Parse_Time;
   342 $Avg_Time = $Avg_Time + $TotalLayoutTime + $TotalPageLoad_Time;
   344 if( $TotalLayout_Time > 0 ){
   345   if ($Content_Time != 0)
   346   {
   347     $Content_Time_Percentage = ($Content_Time / $TotalLayout_Time) * 100;
   348   }
   349   if ($Reflow_Time != 0)
   350   {
   351     $Reflow_Time_Percentage = ($Reflow_Time / $TotalLayout_Time) * 100;
   352   }
   353   if ($Frame_Time != 0)
   354   {
   355     $Frame_Time_Percentage = ($Frame_Time / $TotalLayout_Time) * 100;
   356   }
   357   if ($Style_Time != 0)
   358   {
   359     $Style_Time_Percentage = ($Style_Time / $TotalLayout_Time) * 100;
   360   }
   361   if ($Parse_Time != 0)
   362   {
   363     $Parse_Time_Percentage = ($Parse_Time / $TotalLayout_Time) * 100;
   364   }
   365   if( $TotalPageLoad_Time > 0 ){
   366     $TotalLayout_Time_Percentage =  ($TotalLayout_Time / $TotalPageLoad_Time) * 100;
   367   } else {
   368     $TotalLayout_Time_Percentage =  100;
   369   }
   370 }
   372 #------------------------------------------------------------------------------
   373 # Add current values to those in the averages-fields
   374 #------------------------------------------------------------------------------
   375 $Avg_Content_Time += $Content_Time;
   376 $Avg_Reflow_Time += $Reflow_Time;
   377 $Avg_Frame_Time += $Frame_Time;
   378 $Avg_Style_Time += $Style_Time;
   379 $Avg_Parse_Time += $Parse_Time;
   380 $Avg_TotalPageLoad_Time += $TotalPageLoad_Time;
   381 $Avg_TotalLayout_Time += $TotalLayout_Time;
   383 $Avg_Content_Time_Percentage += $Content_Time_Percentage;
   384 $Avg_Reflow_Time_Percentage += $Reflow_Time_Percentage;
   385 $Avg_Frame_Time_Percentage += $Frame_Time_Percentage;
   386 $Avg_Style_Time_Percentage += $Style_Time_Percentage;
   387 $Avg_Parse_Time_Percentage += $Parse_Time_Percentage;
   388 $Avg_TotalLayout_Time_Percentage += $TotalLayout_Time_Percentage;
   390 $Num_Entries += 1;
   392 #------------------------------------------------------------------------------
   393 # Now write this site's data to the table
   394 #------------------------------------------------------------------------------
   395 open (TABLE_FILE, ">>table.html");
   397 print (TABLE_FILE "<tr>");
   399 print (TABLE_FILE "<td BGCOLOR='#FFFFFF'>");
   400 print (TABLE_FILE "<center><a href='$LinkURL'>$UrlName</a></center>");
   401 print (TABLE_FILE "</td>");
   403 print (TABLE_FILE "<td BGCOLOR='#FFFFFF'>");
   404 printf (TABLE_FILE "<center>%4.2f</center>",$Parse_Time);
   405 print (DEVIATION "$Parse_Time,");
   406 print (TABLE_FILE "</td>");
   408 print (TABLE_FILE "<td BGCOLOR='#FFFF00'>");
   409 printf (TABLE_FILE "<center>%4.2f</center>",$Parse_Time_Percentage);
   410 print (DEVIATION "$Parse_Time_Percentage,");
   411 print (TABLE_FILE "</td>");
   413 print (TABLE_FILE "<td BGCOLOR='#FFFFFF'>");
   414 printf (TABLE_FILE "<center>%4.2f</center>",$Content_Time);
   415 print (DEVIATION "$Content_Time,");
   416 print (TABLE_FILE "</td>");
   418 print (TABLE_FILE "<td BGCOLOR='#FFFF00'>");
   419 printf (TABLE_FILE "<center>%4.2f</center>",$Content_Time_Percentage);
   420 print (DEVIATION "$Content_Time_Percentage,");
   421 print (TABLE_FILE "</td>");
   423 print (TABLE_FILE "<td BGCOLOR='#FFFFFF'>");
   424 printf (TABLE_FILE "<center>%4.2f</center>",$Frame_Time);
   425 print (DEVIATION "$Frame_Time,");
   426 print (TABLE_FILE "</td>");
   428 print (TABLE_FILE "<td BGCOLOR='#FFFF00'>");
   429 printf (TABLE_FILE "<center>%4.2f</center>",$Frame_Time_Percentage);
   430 print (DEVIATION "$Frame_Time_Percentage,");
   431 print (TABLE_FILE "</td>");
   433 print (TABLE_FILE "<td BGCOLOR='#FFFFFF'>");
   434 printf (TABLE_FILE "<center>%4.2f</center>",$Style_Time);
   435 print (DEVIATION "$Style_Time,");
   436 print (TABLE_FILE "</td>");
   438 print (TABLE_FILE "<td BGCOLOR='#FFFF00'>");
   439 printf (TABLE_FILE "<center>%4.2f</center>",$Style_Time_Percentage);
   440 print (DEVIATION "$Style_Time_Percentage,");
   441 print (TABLE_FILE "</td>");
   443 print (TABLE_FILE "<td BGCOLOR='#FFFFFF'>");
   444 printf (TABLE_FILE "<center>%4.2f</center>",$Reflow_Time);
   445 print (DEVIATION "$Reflow_Time,");
   446 print (TABLE_FILE "</td>");
   448 print (TABLE_FILE "<td BGCOLOR='#FFFF00'>");
   449 printf (TABLE_FILE "<center>%4.2f</center>",$Reflow_Time_Percentage);
   450 print (DEVIATION "$Reflow_Time_Percentage,");
   451 print (TABLE_FILE "</td>");
   453 print (TABLE_FILE "<td BGCOLOR='#FFFFFF'>");
   454 printf (TABLE_FILE "<center>%4.2f</center>",$TotalLayout_Time);
   455 print (DEVIATION "$TotalLayout_Time,");
   456 print (TABLE_FILE "</td>");
   458 print (TABLE_FILE "<td BGCOLOR='#FFFF00'>");
   459 printf (TABLE_FILE "<center>%4.2f</center>",$TotalLayout_Time_Percentage);
   460 print (DEVIATION "$TotalLayout_Time_Percentage,");
   461 print (TABLE_FILE "</td>");
   463 print (TABLE_FILE "<td BGCOLOR='#FFFFFF'>");
   464 printf (TABLE_FILE "<center>%4.2f</center>",$TotalPageLoad_Time);
   465 print (DEVIATION "$TotalPageLoad_Time\n");
   466 print (TABLE_FILE "</td>");
   468 print (TABLE_FILE "</tr>\n");
   470 close (LOG_FILE);
   472 open (AVERAGE, "> Average.txt");
   473 print (AVERAGE "Num Entries: $Num_Entries\n");
   474 print (AVERAGE "Avg Parse: $Avg_Parse_Time\n");
   475 print (AVERAGE "Per Parse: $Avg_Parse_Time_Percentage\n");
   476 print (AVERAGE "Avg Content: $Avg_Content_Time\n");
   477 print (AVERAGE "Per Content: $Avg_Content_Time_Percentage\n");
   478 print (AVERAGE "Avg Frame: $Avg_Frame_Time\n");
   479 print (AVERAGE "Per Frame: $Avg_Frame_Time_Percentage\n");
   480 print (AVERAGE "Avg Style: $Avg_Style_Time\n");
   481 print (AVERAGE "Per Style: $Avg_Style_Time_Percentage\n");
   482 print (AVERAGE "Avg Reflow: $Avg_Reflow_Time\n");
   483 print (AVERAGE "Per Reflow: $Avg_Reflow_Time_Percentage\n");
   484 print (AVERAGE "Avg TotalLayout: $Avg_TotalLayout_Time\n");
   485 print (AVERAGE "Per Layout: $Avg_TotalLayout_Time_Percentage\n");
   486 print (AVERAGE "Avg PageLoad: $Avg_TotalPageLoad_Time\n");
   487 close (AVERAGE);

mercurial