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

benchmarking, performance, ruby

Solution

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".

Problem

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) ``` What are the meanings of "user", "system", and "real"?

Original source