Результаты просмотра MiniProfilerEF без RenderIncludes()

Есть ли другой способ просмотреть результаты профилирования MiniProfiler (меня особенно интересует версия EF5)?

В каждом учебнике, который я видел, используется MiniProfiler.RenderIncludes();, но, поскольку мое приложение MVC в основном возвращает JSON, это не вариант для меня.

Есть ли способ записать результаты в файл или что-то в этом роде?


person andree    schedule 09.06.2014    source источник


Ответы (1)


Вы можете читать и записывать результаты практически в любом месте, изменив MiniProfiler.Settings.Storage на другой IStorage по умолчанию (которая сохраняется в https://github.com/MiniProfiler/dotnet/blob/master/StackExchange.Profiling/Storage/HttpRuntimeCacheStorage.cs). Если бы вы захотели, это могло бы довольно легко хранить и читать из файла (для этого вам нужно было бы написать свою собственную реализацию).

Файлы, обслуживаемые RenderIncludes, представляют собой HTML-шаблоны для отображения результатов и сценарий для получения результатов с сервера и их обработки на клиенте (все найдено здесь). Но вы ни в коем случае не обязаны использовать этот механизм. Если вы хотите написать свою собственную логику для извлечения и отображения результатов, вы должны основывать ее на логике, приведенной в MiniProfilerHandler.GetSingleProfilerResult. Эта функция примерно выполняет следующее (учитывая важные шаги для ваших целей):

  1. Получает идентификатор следующих результатов для извлечения (до MiniProfiler.Settings.Storage.List())
  2. Получает фактические результаты (MiniProfiler.Settings.Storage.Load(id))
  3. Отмечает результаты как просмотренные, чтобы их больше нельзя было получить (MiniProfiler.Settings.Storage.SetViewed(user, id))
  4. Преобразует их в ResultsJson и возвращает

Имея доступ к MiniProfiler.Settings.Storage, вы сможете извлекать, обслуживать и использовать результаты профиля любым удобным для вас способом. И если вы заинтересованы в использовании движка RenderIncludes, но хотите возиться с обслуживаемым html/js, вы можете предоставить свой собственный пользовательский интерфейс. шаблоны, которые заменят поведение по умолчанию.

person Yaakov Ellis    schedule 10.06.2014