Производительность asp.net mvc findpartialview - PullRequest
0 голосов
/ 15 мая 2009

У меня есть приложение ASP.NET MVC, которое использует AreaViewEngine, предложенный Филом Хааком здесь . Он работает нормально, но приложение кажется вялым, поэтому я немного профилировал с помощью dotTrace. Я перенес приложение на наш сервер разработки, изменил флаг отладки на false в web.config (compugation debug = "false"), запустил профилировщик и использовал jmeter для создания нескольких тысяч обращений. То, что я нашел, перечислено ниже:

alt text

Обратите внимание, что VirtualPathProviderViewEngine.FindPartialView занял более 320 секунд. Я не могу детализировать дальше, чтобы увидеть, какой основной код вызывает проблему, но я подозреваю, что это связано с упомянутой проблемой здесь .

В блоге конкретно говорится, что работа в режиме выпуска приведет к кэшированию разрешения пути просмотра, но, похоже, это не так (или, если это так, то что-то еще занимает много времени в пределах Функция FindPartialView.

Есть мысли?

Edit:

Я так и не нашел причину проблемы, но в итоге я скачал исходный код MVC для выпуска 1.0, и он работает нормально. Должно быть несоответствие между устанавливаемым двоичным файлом и исходным кодом для v1.0. или что-то не так с моей установкой (хотя проблема проявлялась на нескольких машинах).

1 Ответ

0 голосов
/ 15 мая 2009

Единственное, что вы можете сделать, чтобы повысить производительность при использовании RenderPartial () или View (), - это вернуть путь к представлению так, чтобы его не нужно было искать. Когда вы указываете только имя файла, он должен определить, что это только имя файла, а затем искать представление в списке папок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...