首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有办法在Ruby on Rails的控制台中检查命令的性能?

有没有办法在Ruby on Rails的控制台中检查命令的性能?
EN

Stack Overflow用户
提问于 2012-11-14 08:29:30
回答 2查看 3.2K关注 0票数 9

我找不到任何关于这是否可能的信息,但这将是有用的,我可以在rails console中调用命令的方法,并使用任何度量来确定性能,但我主要考虑的是时间。

例如,我正在尝试找出其中哪一个更快:

代码语言:javascript
运行
复制
[val2,val3,val4,val5,val6].find{|x| x != val1}
[val2,val3,val4,val5,val6].all?{|x| x == val1} 

有这样的东西吗?

代码语言:javascript
运行
复制
[val2,val3,val4,val5,val6].find{|x| x != val1}.performance
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-14 08:31:36

的确有!而且您甚至不需要Rails。从标准库中查看benchmark

作为示例:

代码语言:javascript
运行
复制
require 'benchmark'

puts Benchmark.measure { [val2,val3,val4,val5,val6].find{|x| x != val1} }
puts Benchmark.measure { [val2,val3,val4,val5,val6].all?{|x| x == val1} }

输出的报告将显示(以秒为单位):

  • 用户CPU时间。
  • 系统CPU时间。
  • 用户和系统CPU时间之和。
  • 已用实时时间。

看起来像这样:

代码语言:javascript
运行
复制
0.350000   0.010000   0.360000 (  0.436450)
票数 22
EN

Stack Overflow用户

发布于 2015-10-13 16:55:42

这个宝石:https://github.com/igorkasyanchuk/benchmark_methods

不再有这样的代码:

代码语言:javascript
运行
复制
t = Time.now
user.calculate_report
puts Time.now - t

现在您可以执行以下操作:

代码语言:javascript
运行
复制
benchmark :calculate_report # in class

只需调用您的方法

代码语言:javascript
运行
复制
user.calculate_report
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13371267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档