我有一个请求,控制器操作需要太长时间。 我开始使用rorvswild gem给了我一些见解,但它仍然只是表明该动作导致问题而没有进一步的细节。在动作之前运行的一些回调也很快。
查看和AR都很好 Rails日志:
Completed 200 OK in 504ms (Views: 218.8ms | ActiveRecord: 13.3ms)
rorvswild日志:
app/controllers/app_sites_controller.rb
CODE
AppSiteDraftsController#show
375ms
x1
74%
总共往返时间为504毫秒,我的意见只需要218毫秒??? 那我怎么能找到瓶颈呢?
编辑:
我使用RorVsWild,我注意到respond_to在某种程度上是另一个行动的瓶颈
RorVsWild.measure_block("Give it a name") do
respond_to do |format|
format.html {render 'dashboards/privacy/privacy'}
end
end
/app/controllers/dashboards_controller.rb:148
CODE
Give it a name
2800 ms
即使我删除了所有haml代码,它仍然很慢
更新并解决了
事实证明,我的sass文件过于沉重'。我有一些包括。当我将assets.debug更改为false时,它会快速呈现 config.assets.debug = false答案 0 :(得分:1)
我是RorVsWild的作者。请记住,在开发环境中,每个请求都会重新加载代码。它增加了波动性。为了获得可靠的测量,我建议您在development.rb中设置config.cache_classes = true
。然后重新启动服务器。
AppSiteDraftsController#show
或控制器回调中的某些内容很慢。但它不是一个缓慢的SQL查询,否则它将被记录。可能是Ruby重新加载你的文件或gem没有记录的其他东西。
您可以通过自己测量代码的任何部分来深入了解:
RorVsWild.measure_block("Give it a name") do
# Ruby code
end
答案 1 :(得分:0)
如果您使用 chrome 作为浏览器,则会有一个名为导轨面板的插件,用于分析所有AR&查看每页请求并显示有关每个请求的详细信息。
<强>插件:强>
https://chrome.google.com/webstore/search/rails%20panel