2009-01-14 64 views
6

我在暂存服务器上对我的Rails应用程序速度很慢有些麻烦。最令人困惑的是每个请求的日志输出的最后一行。为什么我的Rails服务器渲染时间不合计?

看起来,视图和数据库时间甚至不是接近整个渲染时间。在一页上,完成时约为1000毫秒,查看约为450毫秒,数据库约为20毫秒。

呈现网页所需的剩余时间是从哪里来的?

回答

0

我推荐使用New Relic's RPM service。它有一个免费版本,但青铜服务(每月40美元)非常好,并进一步帮助追踪这些问题。

+0

http://www.newrelic.com/是你想要的网址 – RichH 2009-01-14 22:09:49

2

当事情很神秘....探险家是你的朋友!

分析器将绘制哪些方法被调用的最多的统计信息,以及每个方法调用花费的时间。

ruby-prof对我来说,当我在RubyLand中时,它会产生一个很好的调用图(如果你需要的话,它会产生一个很好的调用图),这使得它很好看,很容易看出哪些方法会减慢你的请求。

0

我正要重新回答这个问题的答案相同,所以我只是搭载。这里是一个非常小的红宝石教授snippet从一个视图渲染。在引擎盖下有多少东西是令人惊奇的。

0

除了渲染和数据库时间之外,还有一些时间花在控制器代码和Rails框架中。如果分配给临时服务器的资源太少,这可能会非常慢。但是,您不应该认为日志中的持续时间并不总是完美的,尤其是数据库持续时间。

0

你的apache日志说什么?它肯定会有不同的数字来显示提供请求所需的时间。

Apache将请求发送到rails和rails上,这就是您在生产日志中看到的内容。

所有的HTML仍然需要在您的浏览器上呈现(沉重的CSS,图像,JS等)。尝试使用Firefox扩展httpwatch来了解UI元素的渲染时间,它应该加起来。

正如前面所说,NewRelic的应该给你的各种活动所花费的时间体面解体(M v C案例)

2

我发现的渲染时间相当大的比例可以on Rails的创建和准备Active Record对象中度过。查询之后和视图之前。例如,取决于从“查找”返回的记录数量。