Ruby Benchmark module: meanings of “user”, “system”, and “real”?
正在尝试Ruby的基准模块…
1 2 3 | >> 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) |
"用户"、"系统"和"真实"的含义是什么?
这些时间与unix
- 用户:执行用户空间代码(即:您的代码)所花费的时间,
- 系统:执行内核代码和
- 实:执行代码所花费的"实"时间量(即系统+用户+等待I/O、网络、磁盘、用户输入等所花费的时间)。也被称为"时钟时间"。
请检查这个宝石:https://github.com/igorkasyanchuk/benchmach方法
不再有这样的代码:
1 2 3 | t = Time.now user.calculate_report puts Time.now - t |
现在你可以做到:
1 | benchmark :calculate_report # in class |
然后调用你的方法
1 | user.calculate_report |