У меня проблема с производительностью с довольно простым представлением ASP.MVC.
Это журнал -на странице, который должен быть почти мгновенным, но занимает около полсекунды.
После долгих копаний оказалось, что проблема заключается в первом вызовеUrl.Action
-это занимает около 450 мс (согласно MiniProfiler)но это кажется безумно медленным.
Последующие вызовы Url.Action
занимают
Это согласуется с тем, использую ли я Url.Action("action", "controller")
или Url.Action("action")
, но, кажется, не происходит, если я использую Url.Content("~/controller/action")
. Это также происходит, когда я звоню Html.BeginForm("action")
.
Кто-нибудь знает, что вызывает это?
Изучение источника позволяет предположить, что виновником может быть RouteCollection.GetVirtualPath
, так как это общее для Url.Action
и Html.BeginForm
. Однако, конечно, это используется повсеместно? Я имею в виду, что ½ секунды — это слишком медленно.
У меня около 20 пользовательских маршрутов (, это довольно большое приложение с некоторыми устаревшими страницами WebForms ), но даже тогда время кажется слишком медленным.
Есть идеи, как это исправить?