| #!/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"; |