今天写基调测试报告,需要从原始的ping延时和丢包率数据中自己计算标准方差以评估波动性(直接运行ping命令可见,不过基调报告里没有)。
方差是各个数据与其平均数的差的平方的平均数。标准差(均方差)则是方差的算术平方根。
这个时候可以打开excel……不过作为excel只会填文字的人,只好打开CPAN来解决问题了~
perl#!/usr/bin/perl -w
use Statistics::Descriptive;
use strict;
open FH,'<','data';
my $data={};
while(<FH>){
my @F = split;
push @{$data->{"快网延时"}}, $F[3];
push @{$data->{"快网丢包"}}, $F[4];
push @{$data->{"森华延时"}}, $F[6];
push @{$data->{"森华丢包"}}, $F[7];
push @{$data->{"帝联延时"}}, $F[9];
push @{$data->{"帝联丢包"}}, $F[10];
}
close FH;
my $stat = Statistics::Descriptive::Full->new();
foreach my $key (sort keys %{$data}) {
$stat->add_data(@{$data->{"$key"}});
print $key."\t".$stat->standard_deviation(),"\n";
$stat->clear();
}
记住一定要clear,不然的话add_data会接着上一次的加,然后数据就错了。