| #!/usr/bin/perl | |
| # A brief file description | |
| # | |
| # @section license License | |
| # | |
| # Licensed to the Apache Software Foundation (ASF) under one | |
| # or more contributor license agreements. See the NOTICE file | |
| # distributed with this work for additional information | |
| # regarding copyright ownership. The ASF licenses this file | |
| # to you under the Apache License, Version 2.0 (the | |
| # "License"); you may not use this file except in compliance | |
| # with the License. You may obtain a copy of the License at | |
| # | |
| # http://www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # Unless required by applicable law or agreed to in writing, software | |
| # distributed under the License is distributed on an "AS IS" BASIS, | |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| # See the License for the specific language governing permissions and | |
| # limitations under the License. | |
| my $runs = 0; | |
| my $fetches = 0; | |
| my $conns = 0; | |
| my $parallel = 0; | |
| my $bytes = 0; | |
| my $seconds = 0; | |
| my $mean_bytes = 0; | |
| my $fetches_sec = 0.0; | |
| my $bytes_sec = 0.0; | |
| my %msecs_connect = ( | |
| "mean" => 0.0, | |
| "max" => 0.0, | |
| "min" => 0.0 | |
| ); | |
| my %msecs_response = ( | |
| "mean" => 0.0, | |
| "max" => 0.0, | |
| "min" => 0.0 | |
| ); | |
| while (<>) { | |
| my @c = split(); | |
| if (/fetches on/) { | |
| $fetches += $c[0]; | |
| $conns += $c[3]; | |
| $parallel += $c[5]; | |
| $bytes += $c[8]; | |
| $seconds += $c[11]; | |
| $runs++; | |
| } elsif (/mean bytes/) { | |
| $mean_bytes += $c[0]; | |
| } elsif (/fetches\/sec/) { | |
| $fetches_sec += $c[0]; | |
| $bytes_sec += $c[2]; | |
| } elsif (/msecs\/connect/) { | |
| $msecs_connect{"mean"} += $c[1]; | |
| $msecs_connect{"max"} += $c[3]; | |
| $msecs_connect{"min"} += $c[5]; | |
| } elsif (/msecs\/first/) { | |
| $msecs_response{"mean"} += $c[1]; | |
| $msecs_response{"max"} += $c[3]; | |
| $msecs_response{"min"} += $c[5]; | |
| } | |
| } | |
| print "Total runs: ", $runs, "\n"; | |
| printf "%d fetches on %d conns, %d max parallel, %.5e bytes in %d seconds\n", | |
| $fetches, $conns, $parallel, $bytes, $seconds / $runs; | |
| print $mean_bytes/ $runs, " mean bytes/fetch\n"; | |
| printf "%.2f fetches/sec, %.5e bytes/sec\n", $fetches_sec, $bytes_sec; | |
| print "msecs/connect: ", $msecs_connect{"mean"} / $runs, " mean, ", | |
| $msecs_connect{"max"} / $runs, " max, ", $msecs_connect{"min"} / $runs, " min\n"; | |
| print "msecs/first-response: ", $msecs_response{"mean"} / $runs, " mean, ", | |
| $msecs_response{"max"} / $runs, " max, ", $msecs_response{"min"} / $runs, " min\n"; |