我在Rails 4.2.1之上使用Grape为我们的应用程序提供API。为什么ActionDispatch :: Routing :: RouteSet需要这么长
但是,当我今天检查Newrelic性能时,发现RackApp Proc#call
和Grape API::Root#call
占用了大量时间。 (见截图)
然后我试图与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路由中做了什么错误?
非常感谢您的帮助。
我有同样的问题,你有没有找到原因? – fuyi