Ruby Benchmark模块:"用户","系统"和"真实"的含义?

Eth*_*han 27 ruby performance benchmarking

试验Ruby的Benchmark模块......

>> 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)
Run Code Online (Sandbox Code Playgroud)

"用户","系统"和"真实"的含义是什么?

Jör*_*tag 55

这些是Unix time命令或其他典型基准测试工具报告的相同时间:

  • user:执行用户空间代码所花费的时间(即:您的代码),
  • system:执行内核代码所花费的时间和
  • real:执行代码所花费的"实际"时间(即系统 + 用户 +等待I/O,网络,磁盘,用户输入等所花费的时间).又称"挂钟时间".

  • @rscott:user,system和total指的是所有核心的时间总和,而real只是字面总时间.因此,如果代码在多核系统上运行,前三个中的任何一个都可以超过后者. (4认同)
  • 那么"总"怎么样?我有一个基准,其中"总数"超过"用户"+"系统"的总和.怎么可能? (3认同)