如何在 Rails 控制台中获取执行时间?

Posted

技术标签:

【中文标题】如何在 Rails 控制台中获取执行时间?【英文标题】:How to get execution time in rails console? 【发布时间】:2011-04-01 03:18:03 【问题描述】:

我想比较Post.allSELECT * FROM posts 的执行时间(或其他一些语句)我怎样才能得到Post.all 的执行时间?

【问题讨论】:

【参考方案1】:
timing = Benchmark.measure  Post.all 

返回对象的各种属性(Benchmark::Tms)提供here。

【讨论】:

我发现这篇文章非常有用:caseyscarborough.com/blog/2013/07/22/… @Bohdan 参考 benchmark-ips gem 添加另一个答案或评论会更好吗?您已经对那里的答案进行了相当大的编辑,这大大改变了它,并且已经降低了对它的投票的适当性。 @Bohdan 赞成。如果新答案变得更合适,您也可以随时更改已接受的答案。【参考方案2】:

与benchmark-ipsgem:

2.3.0 :001 > require 'benchmark/ips'
=> true 
2.3.0 :002 > Benchmark.ips do |x|
2.3.0 :003 >       x.report("add: ")  1+2 
2.3.0 :004?>       x.report("div: ")  1/2 
2.3.0 :005?>       x.report("iis: ")  1/2.0 
2.3.0 :006?>   end
Warming up --------------------------------------
           add:    280.299k i/100ms
           div:    278.189k i/100ms
           iis:    266.526k i/100ms
Calculating -------------------------------------
           add:      11.381M (± 4.5%) i/s -     56.901M in   5.010669s
           div:       9.879M (± 4.6%) i/s -     49.518M in   5.024084s
           iis:       9.289M (± 4.2%) i/s -     46.376M in   5.001639s

【讨论】:

【参考方案3】:

这是我关于如何使用 gem 在 Rails 控制台中自动测量性能的版本:https://github.com/igorkasyanchuk/execution_time

它显示了您在请求期间已经看到的类似信息。

示例:

[METRICS] Completed in 908.3ms | Allocations: 2894 | ActiveRecord: 0.9ms (queries: 13)

【讨论】:

以上是关于如何在 Rails 控制台中获取执行时间?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过Rails控制台在Digital Ocean上写入权限来执行Ruby脚本?

如何在 Rails 6.1 中使用 AJAX 请求执行具有属性的 ruby​​ 函数?

如何更改 Rails 脚手架中的默认模型模板?

如何在 ruby​​ on rails 中获取控制器和操作列表?

写入 Rails 控制台

如何在rails中使用动态绑定执行原始更新sql