开发者

Ruby Benchmark module: meanings of "user", "system", and "real"?

开发者 https://www.devze.com 2022-12-09 20:48 出处:网络
Experimenting with Ruby\'s Benchmark module... >> Benchmark.bm(7) { |b| b.report(\'Report:\') { s = \'\' ; 10000.times { s += \'a\' } }}

Experimenting with Ruby's Benchmark module...

>> Benchmark.bm(7) { |b| b.report('Report:') { s = '' ; 10000.times { s += 'a' } }  }
             user     system      total        real
Report:  0.150000   0.010000   0.160000 (  0.156361)

开发者_StackOverflow社区What are the meanings of "user", "system", and "real"?


These are the same times that the Unix time command or other typical benchmarking tools would report:

  • user: the amount of time spent executing userspace code (i.e.: your code),
  • system: the amount of time spent executing kernel code and
  • real: the "real" amount of time it took to execute the code (i.e. system + user + time spent waiting for I/O, network, disk, user input, etc.). Also known as "wallclock time".


Please check this gem: https://github.com/igorkasyanchuk/benchmark_methods

No more code like this:

t = Time.now
user.calculate_report
puts Time.now - t

Now you can do:

benchmark :calculate_report # in class

And just call your method

user.calculate_report
0

精彩评论

暂无评论...
验证码 换一张
取 消