43 lines
1.1 KiB
Perl
Executable File
43 lines
1.1 KiB
Perl
Executable File
#!/usr/bin/perl -w
|
|
|
|
use Statistics::Descriptive;
|
|
use strict;
|
|
|
|
my %stats;
|
|
my @stat_names;
|
|
|
|
while (<>) {
|
|
if (/Reference time: /) {
|
|
my $prev_time;
|
|
while (/; \(([^)]*), PT([0-9.]*)/g) {
|
|
my $name = $1;
|
|
my $time = $2;
|
|
|
|
my $delta_time;
|
|
if (defined $prev_time) {
|
|
$delta_time = $time - $prev_time;
|
|
}
|
|
else {
|
|
$delta_time = $time;
|
|
}
|
|
$prev_time = $time;
|
|
|
|
if ($name =~ /Toggleable pcap writer:/) {
|
|
$name =~ s/writer: .*/writer/;
|
|
}
|
|
|
|
if (!defined ($stats{$name})) {
|
|
$stats{$name} = Statistics::Descriptive::Full->new();
|
|
push(@stat_names, $name);
|
|
}
|
|
$stats{$name}->add_data($delta_time * 1e3);
|
|
}
|
|
}
|
|
}
|
|
|
|
for my $name (@stat_names) {
|
|
my $s = $stats{$name};
|
|
printf("%s: min %.3f ms, mean %.3f ms, median %.3f ms, 90%% %.3f ms, 99%% %.3f ms, max %.3f ms\n",
|
|
$name, $s->min(), $s->mean(), $s->median(), scalar($s->percentile(90)), scalar($s->percentile(99)), $s->max());
|
|
}
|