📄 analyze.perl
字号:
#!/usr/local/bin/perl$totalReceivers = 10;$totalNodes = 50;$totalPid = 20000;($traceFile, $outFile) = @ARGV;$outFile = ">".$outFile;open (MYFILE, $traceFile) || die "cannot open the trace file\n";open (PACKET, $outFile) || die "cannot open the output file\n";$i = 0;while($i < $totalPid){ $send[$i] = 0; $sendTime[$i] = 0; $j = 0; while($j<$totalNodes){ $recv[$i][$j] = 0; $latency[$i][$j] = 0; $j++; } $i++;}while (<MYFILE>){ $current_time = findTime($_); if (m/cbr/ && m/^s/ && m/AGT/) { $id = findPacketId($_); $send[$id] = 1; $sendTime[$id] = $current_time; } elsif(m/cbr/ && m/^r/ && m/RTR/){ $id = findPacketId($_); $node = findNodeId($_); if ($recv[$id][$node] == 0){ $recv[$id][$node] = 1; $latency[$id][$node] = $current_time - $sendTime[$id]; } }}print "almost done!\n"; close (MYFILE);$totalSend = 0;$totalRecv = 0;$totalLatency = 0;$i = 0;while ($i < $totalPid){ if ($send[$i] == 1){ $totalSend++; $j = $totalNodes - $totalReceivers; if ($j == 0 ) {$j = 1;} while ($j < $totalNodes){ if ($recv[$i][$j] == 1){ $totalRecv++; $totalLatency += $latency[$i][$j]; } $j++; } } $i++;}print PACKET "The number of receivers is : ", $totalReceivers, "\n";print PACKET "The number of sent-out packets is: ", $totalSend, "\n";print PACKET "The number of received packets is: ", $totalRecv, "\n";if ($totalReceivers != $totalNodes) { print PACKET "Ratio is ", $totalRecv/($totalSend*$totalReceivers), "\n";}else { print PACKET "Ratio is ", $totalRecv/($totalSend*($totalReceivers - 1)), "\n";}print PACKET "Latency is ", $totalLatency/$totalRecv, "\n";close (PACKET);sub findPacketId { @fields = split(/ /, $_[0]); $pid = $fields[6]; if ($fields[4] != "") {$pid = $fileds[5];} return $pid;}sub findTime { @fields = split(/ /, $_[0]); $theTime = $fields[1]; return $theTime;}sub findNodeId { $startPo = index($_[0], "_")+1; $endPo = index($_[0], "_", $startPo); $len = $endPo - $startPo; $node = substr($_[0], $startPo, $len); return $node;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -