我在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