根据我的heroku日志,我的rails应用程序平均在1700到2500毫秒之间提供请求(这是整个往返)。我使用新的遗物来描述我的应用程序,似乎大部分请求都没有花在我的数据库中,而是花在New Relic的“Web Transaction”部分。似乎“控制器”类别往往是请求中最慢的类别,其次是“数据库”类别中的“SQL - SELECT”段。
我不太确定在我的控制器中可能导致我的性能瓶颈的可能性,我也不认为我可以在不支付高级版本的情况下深入了解新的遗物。我最近为我的应用程序的外键添加了索引,尽管我认为这在数据库响应时间方面没有太大差别。
我知道这还不足以找出造成这些瓶颈的原因,但我甚至不知道从哪里开始或提供什么信息。如果人们可以告诉我诊断这些问题需要哪些信息,那么这对我有帮助。
答案 0 :(得分:2)
New Relic for Ruby包含一个免费的独立开发者模式。在RAILS_ENV = development中运行时,New Relic gem会添加一条路径,显示每个请求的详细配置文件。几次点击你的应用后转到http://localhost:3000/newrelic。
配置文件包括每个SQL查询以及代码组件的时间。您可以使用custom instrumentation将大块代码分解为单独计时的较小段(或单个方法)。此功能很像您在付费Pro版本中获得的事务跟踪,一个主要区别是您不希望在生产中运行免费开发模式。
(完全披露:我为NR工作。虽然没有多少人知道免费开发模式,所以我认为值得一提。)
您可能会使head.js之类的内容更快地加载Javascript,这会异步并行地加载您的JS文件。
答案 1 :(得分:0)
看看这张幻灯片:
http://www.slideshare.net/drhenner/optimize-the-obvious-7636674
可能还不够,但它经历了一些常见的错误。
挖一点钱,看一下这段视频:http://windycityrails.org/videos2011/#2
它更长,但有很多地方可以看。
另一方面。你使用CDN吗?