Wed, 31 Dec 2014 06:09:35 +0100
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);