4

我想确定我的应用程序中的延迟时间。我试图把我的请求花费的时间比广告时间长得多的原因放在一起。我在日志中包含了一个示例。在 Views 和 ActiveRecord 之间,时间只有 150ms,但整个响应却用了 1483ms。这比在不受监控的地方丢失的时间还多。

Started POST "/contacts" for 80.171.62.199 at 2012-05-14 09:51:33 +0000
Processing by ContactsController#create as HTML
  Parameters: {"developer_api_key"=>"foo", "user_api_key"=>"bar", "contact"=>{"name"=>"Cors Test"}}
  HTTP Logger Request ID: 4fb0d5a583098e0014000002
Completed 201 Created in 1483ms (Views: 133.2ms | ActiveRecord: 24.0ms)

我正在使用 New Relic RPM 来监控应用程序性能,它只向我显示: ContactsController#index: 426ms. 仍然有很多时间和代码下落不明。

对我来说,找出代码将时间花在哪里的最佳方法是什么?我应该投资扩展 New Relic RPM 还是使用 ruby​​-prof 之类的东西?

4

2 回答 2

1

这是在生产中吗?如果是这样,是的,投资 New Relic 或使用他们通常拥有的免费升级“东西”试用它们。我猜你通常会得到一个星期。看看他们现在有没有这样的交易。

此外,您是否有 before_filters、对 3rd 方服务的 api 调用、一些奇怪的初始化程序,这是在服务器重启后第一次调用 POST 吗?

您有一个 developer_api_key 可能正在检查某处(可能在本地)或第 3 方服务。

很多因素,但它只是一秒钟。大多数标准应用程序都可以在 POST 上使用。除非它是一个 New Relic 克隆,它需要 POSTS 并且只有 POSTS,即,那是你的面包和黄油。

另外,您在 api 键上有索引吗?以防万一。

于 2012-05-14T12:29:09.213 回答
0

New Relic 是最好的工具:

http://newrelic.com/

我不喜欢这里的广告产品,但我用过它,它真的很有帮助。

于 2012-05-14T13:25:15.780 回答