require 'benchmark'
arr = (1..1000).to_a.shuffle
time = Benchmark.measure do
arr.sort
end
puts "排序1000个随机整数所花费的时间: #{time.real} 秒"
Benchmark模块主要方法及作用
- Benchmark.measure
- 作用:执行给定的代码块,并返回一个
Benchmark::Tms
对象,该对象包含了代码块执行过程中的时间统计信息,如用户CPU时间(utime
)、系统CPU时间(stime
)、总CPU时间(cutime +cstime +utime +stime
)以及实际经过的时间(real
)。
- Benchmark.bm(width = 7, &block)
- 作用:对一系列代码块进行基准测试,并以表格形式输出结果。
width
参数指定输出表格中时间列的宽度。它会在标准输出中打印出每个代码块的标签(如果提供)以及对应的时间统计信息。
- Benchmark.bmbm(width = 7, &block)
- 作用:类似于
Benchmark.bm
,但会在表格输出前打印一个标题行,使输出结果更具可读性,便于对比不同代码块的性能。