reqreq.pl

来自「disksim是一个非常优秀的磁盘仿真工具」· PL 代码 · 共 56 行

PL
56
字号
#!/usr/bin/perl# produce per-request prediction errors between a disksim "detailed# execution trace" and a "validation" trace.# This will currently only handle one outstanding request.$reqfile = $ARGV[0];$tracefile = $ARGV[1];open(REQ, "$reqfile") || die;open(TRACE, "$tracefile") || die;$count = 0;@buckets = ();while(1) {    do {	$rl = <REQ> || last;    } while(! ($rl =~ /Request issue/));    @f = split(/\s+/, $rl);    $issue = $f[9];    do {	$rl = <REQ> || last;    } while(!($rl =~ /Request completion/));    @f = split(/\s+/, $rl);    $completion = $f[3];    $srvtime = $completion - $issue;#    print "srvtime $completion - $issue = $srvtime\n";    $tl = <TRACE> || last;        @tf = split(/\s+/, $tl);        $diff = ($srvtime) - ($tf[4] / 1000.0);    $idx = int(($diff * 10)) + 1000;    print "$diff\n";    $buckets[int(($diff * 10)) + 1000]++;    $count++;}for($i = 0; $i < 2000; $i++) {    $v = ($i / 10.0) - 100.0;    $ct = $buckets[$i];    if($ct eq undef) { $ct = 0.0; }    $ct /= $count;    print "$v $ct\n";}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?