ruby-on-rails - 无法弄清楚是什么导致我的 Rails 应用程序出现性能瓶颈

标签 ruby-on-rails ruby ruby-on-rails-3 performance profiling

根据我的 heroku 日志,我的 Rails 应用服务请求的平均时间约为 1700 到 2500 毫秒(这是整个往返时间)。我使用 new relic 来分析我的应用程序,似乎大部分请求都没有用在我的数据库中,而是用在了 New Relic 的“Web Transaction”部分。似乎“ Controller ”类别往往是请求中最慢的,其次是“数据库”类别中的“SQL - SELECT”段。

我不太确定是什么导致我的 Controller 出现性能瓶颈,我也不认为我可以在不支付高级版本的情况下更深入地研究新遗迹。我最近向我的应用程序的外键添加了索引,尽管我认为这对数据库响应时间没有太大影响。

我知道这些信息不足以找出造成这些瓶颈的原因,但我什至不知道从哪里开始或提供什么信息。如果有人能告诉我需要哪些信息来诊断这些问题,那将对我有所帮助。

最佳答案

New Relic for Ruby 包含一个免费的独立开发者模式。当在 RAILS_ENV=development 中运行时,New Relic gem 添加了一个路由,它将向您显示每个请求的详细配置文件。转到 http://localhost:3000/newrelic在您点击您的应用几次之后。

配置文件包括每个 SQL 查询的时间,以及代码组件的时间。您可以使用 custom instrumentation将大块代码分解成更小的段(或单独的方法),分别计时。此功能很像您在付费专业版中获得的交易跟踪,一个主要区别是您不想在生产中运行免费开发模式。

(完全公开:我在 NR 工作。虽然没有多少人知道免费开发模式,所以我认为它值得一提。)

您可以使用 head.js 之类的东西使 Javascript 加载看起来更快,这将异步和并行加载您的 JS 文件。

关于ruby-on-rails - 无法弄清楚是什么导致我的 Rails 应用程序出现性能瓶颈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8599670/

相关文章:

Rails 3 中的 MySQL 语法,不区分大小写的搜索,不适用于 Heroku?

ruby - 运行 dependency.rb :247:in `to_specs' : Could not find bundler

ruby - 为什么 psql -version 输出和连接到我的应用程序的 psql 版本之间存在差异?

ruby-on-rails - Ruby 三元运算符(或)或运算符

ruby-on-rails - 为什么默认 application.css 中 require_tree 位于 require_self 之前?

javascript - 使用 json 时对 ruby​​ 哈希进行排序

ruby-on-rails-3 - 如何将 ImageMagick 命令行选项转换为 MiniMagick 以在 CarrierWave 中使用

ruby-on-rails - 从本地回形针存储迁移到 S3

ruby - 在 Ruby 代码块中获取值而不是最后一条语句

ruby-on-rails - Ruby on Rails 3 简单的分组和计数