#.net #performance #iis #cpu #perfview
Вопрос:
Кто-нибудь знает, почему я получаю тысячи вызовов в FileOpenOrCreate в поисках случайных файлов .cshtml и .vbhtml с помощью PerfView и раздела Процессы / Файлы / Стеки реестра коллекции?
Ответ №1:
Если вы потратите совсем немного времени на исходный код (но не поймете, как найти исходные файлы), вы сможете увидеть ASP.NET среда выполнения ( WebPageRoute
) пытается сопоставить путь запроса с путем файловой системы,
В этом процессе он использует кэш в MapPathBasedVirtualPathProvider
,
https://referencesource.microsoft.com/#System.Web/Hosting/MapPathBasedVirtualPathProvider.cs,78
Доступ к файловой системе, записанный PerfView, соответствует поведению создания такого кэша, поэтому, похоже, там нет ничего плохого.
Комментарии:
1. Почему он ищет общий диск с тысячами изображений? Это не имеет смысла. Почему он использует полные URL-адреса и рассматривает их как путь? Я понимаю, что это соответствует поведению, но папки, в которых он пытается это сделать, ненормальны.
2. Только разработчики ASP.NET знайте, что имеет смысл, поэтому, если хотите, поговорите с ними и посмотрите, что они ответят, github.com/aspnet/AspNetWebStack/issues