Używam Grape na Rails 4.2.1, aby zapewnić API dla naszej aplikacji.Dlaczego ActionDispatch :: Routing :: RouteSet trwa tak długo
Ale kiedy sprawdzam wydajność Newrelic dzisiaj stwierdziłem, że RackApp Proc#call
i Grape API::Root#call
zajmują dużo czasu. (Patrz zrzut ekranu)
Potem starałem się zalogować czas zużywany middleware z rack_timer
i stwierdził, że ActionDispatch::Routing::RouteSet
odbywa się przez większość czasu:
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
Są nawet przypadki, że weź 500ms - 1000ms w ActionDispatch::Routing::RouteSet
. Jak mogłem wyśledzić ten problem i skąd mogłem wiedzieć, co zrobiłem źle na trasach Rails?
Wielkie dzięki za pomoc.
Mam ten sam problem, znalazłeś przyczynę? – fuyi