MST

星途 面试题库

面试题:Ruby中如何使用Benchmark模块进行基本的性能基准测试

在Ruby中,要求你编写一段代码,使用Benchmark模块对一个简单的数组排序方法进行性能基准测试,展示排序1000个随机整数所花费的时间。请阐述Benchmark模块的主要方法及作用。
32.5万 热度难度
编程语言Ruby

知识考点

AI 面试

面试题答案

一键面试
require 'benchmark'

arr = (1..1000).to_a.shuffle

time = Benchmark.measure do
  arr.sort
end

puts "排序1000个随机整数所花费的时间: #{time.real} 秒"

Benchmark模块主要方法及作用

  1. Benchmark.measure
    • 作用:执行给定的代码块,并返回一个Benchmark::Tms对象,该对象包含了代码块执行过程中的时间统计信息,如用户CPU时间(utime)、系统CPU时间(stime)、总CPU时间(cutime +cstime +utime +stime)以及实际经过的时间(real)。
  2. Benchmark.bm(width = 7, &block)
    • 作用:对一系列代码块进行基准测试,并以表格形式输出结果。width参数指定输出表格中时间列的宽度。它会在标准输出中打印出每个代码块的标签(如果提供)以及对应的时间统计信息。
  3. Benchmark.bmbm(width = 7, &block)
    • 作用:类似于Benchmark.bm,但会在表格输出前打印一个标题行,使输出结果更具可读性,便于对比不同代码块的性能。