|
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/. |
|
6 |
|
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"); |
|
26 |
|
27 #------------------------------------------------------------------------------ |
|
28 # Open the ID file and get the build ID |
|
29 #------------------------------------------------------------------------------ |
|
30 |
|
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 ); |
|
49 |
|
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"; |
|
55 |
|
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"; |
|
71 |
|
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,"); |
|
78 |
|
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; |
|
122 |
|
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 #------------------------------------------------------------------------------ |
|
130 |
|
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); |
|
144 |
|
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 } |
|
219 |
|
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); |
|
228 |
|
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" ); |
|
236 |
|
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 } |
|
332 |
|
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; |
|
343 |
|
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 } |
|
371 |
|
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; |
|
382 |
|
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; |
|
389 |
|
390 $Num_Entries += 1; |
|
391 |
|
392 #------------------------------------------------------------------------------ |
|
393 # Now write this site's data to the table |
|
394 #------------------------------------------------------------------------------ |
|
395 open (TABLE_FILE, ">>table.html"); |
|
396 |
|
397 print (TABLE_FILE "<tr>"); |
|
398 |
|
399 print (TABLE_FILE "<td BGCOLOR='#FFFFFF'>"); |
|
400 print (TABLE_FILE "<center><a href='$LinkURL'>$UrlName</a></center>"); |
|
401 print (TABLE_FILE "</td>"); |
|
402 |
|
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>"); |
|
407 |
|
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>"); |
|
412 |
|
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>"); |
|
417 |
|
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>"); |
|
422 |
|
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>"); |
|
427 |
|
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>"); |
|
432 |
|
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>"); |
|
437 |
|
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>"); |
|
442 |
|
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>"); |
|
447 |
|
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>"); |
|
452 |
|
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>"); |
|
457 |
|
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>"); |
|
462 |
|
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>"); |
|
467 |
|
468 print (TABLE_FILE "</tr>\n"); |
|
469 |
|
470 close (LOG_FILE); |
|
471 |
|
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); |