gpt4 book ai didi

ruby-on-rails - 为什么 ActionDispatch::Routing::RouteSet 需要这么长时间

转载 作者:行者123 更新时间:2023-12-04 08:55:15 24 4
gpt4 key购买 nike

我在 Rails 4.2.1 之上使用 Grape 为我们的应用程序提供 API。

但是当我今天检查 Newrelic 的性能时,我发现 RackApp Proc#callGrape API::Root#call正在占用大量时间。 (见截图)

enter image description here

然后我尝试用 rack_timer 记录中间件消耗的时间并发现 ActionDispatch::Routing::RouteSet占用大部分时间:

Rack Timer (Application Action) -- ActionDispatch::Routing::RouteSet: 67.12579727172852 ms
Rack Timer (Application Action) -- ActionDispatch::Routing::RouteSet: 101.51457786560059 ms
Rack Timer (Application Action) -- ActionDispatch::Routing::RouteSet: 84.18059349060059 ms
Rack Timer (Application Action) -- ActionDispatch::Routing::RouteSet: 1236.2565994262695 ms
Rack Timer (Application Action) -- ActionDispatch::Routing::RouteSet: 8.124351501464844 ms
Rack Timer (Application Action) -- ActionDispatch::Routing::RouteSet: 55.65309524536133 ms

ActionDispatch::Routing::RouteSet 中甚至有需要 500ms - 1000ms 的情况.我怎样才能找到这个问题,我怎样才能知道我在 Rails route 做错了什么?

非常感谢您的帮助。

最佳答案

对我来说,事实证明 Newrelic ruby​​ 代理不适用于 Rocket_pants,我用来构建 API 端点的 gem。

有一个第三方 gem 'rocket_pants-rpm' 来解决这个问题,但原来的 one stop 工作从 newrelic_rpm 3.9+ 版本开始,要解决这个问题,请尝试使用 https://github.com/SpartaSales/rocket_pants-rpm 的 fork 版本。

这是添加这个 gem 后,newrelic 报告如何查找我的。

newrelic request time percentage

关于ruby-on-rails - 为什么 ActionDispatch::Routing::RouteSet 需要这么长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30128883/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com