ruby 代码
- #!/usr/local/bin/ruby
- require 'mathn'
- files = Dir.glob("udpsink*.txt")
- interval=ARGV[0]
- if ARGV.size <=1
- interval = 49
- end
- files.each do |f|
- dl = []
- ps=[]
- udpindex = f.match(/(\d+)/)[1].to_i
- File.open(f, 'r').each do |line|
- ll=line.split
- dl << ll[3].to_f
- ps << ll[4].to_i
- end
- sum = 0
- ps.each {|p| sum += p}
- delay=0
- dl.each {|d| delay += d}
- printf "UDP #%d Throughput: %0.2f Kbps Average delay: %0.2f Sec\n", udpindex, sum*8/1024/interval.to_f, delay/dl.size
- end
注意几个地方
1) Dir.glob方法返回一个array
2) File.open(f, 'r').each 可以调用block
3) string.match(regex)[1] 返回匹配组
本文介绍了一段Ruby脚本,该脚本用于读取多个UDP数据文件并计算每个文件的平均吞吐量及延迟。通过解析文件名获取索引,并逐行读取文件内容来提取数据包大小和到达时间。最后输出每条UDP流的统计数据。
302

被折叠的 条评论
为什么被折叠?



