Как скрыть мини-профиль?

Я использую профилировщик MVC Mini, чтобы проверить скорость определенных частей моего приложения, и хотел бы оставить его там на тот случай, если что-то случится позже, и мне может потребоваться проверить, «что не так». Это не полный набор журналов, но он очень полезен, чтобы узнать, почему страница занимает много времени.

Итак, моя цель - скрыть его и сохранить профиль только тогда, когда запрос приходит с определенным параметром. Однако ни одна из моих попыток не сработала так, как я ожидал.

Это сделано для того, чтобы не отображать его на экране (код в представлении):

@if (Request.QueryString.AllKeys.Contains("showProfiler"))
{ 
    @MvcMiniProfiler.MiniProfiler.RenderIncludes()
}

Это попытка приблизиться. Правильно скрывает информацию мини-профилировщика, но в тот момент, когда я ее показываю, он профилирует все, так как я перестал ее показывать. Итак, допустим, я профилирую свою страницу, и это занимает 3 секунды. Удаляю параметр запроса и загружаю страницу еще три раза. Я снова добавляю свой параметр и вижу 4 набора информации профиля. Это означает, что он отслеживает все, и мне интересно, может ли это вызвать проблемы с памятью.

Попытки сделать так, чтобы это больше не происходило:

Попытка 1:

protected void Application_BeginRequest()
{
    if (Request.QueryString.AllKeys.Contains("showProfiler"))
    {
        MiniProfiler.Start();
    }
}

Попытка 2:

protected void Application_EndRequest()
{
    MiniProfiler.Stop(!Request.QueryString.AllKeys.Contains("showProfiler"));
}

Попытка 3:

protected void Application_EndRequest()
{
    MiniProfiler.Stop(true);
}

Ничего из этого не сработало. Есть идеи?

11
задан Alpha 30 September 2011 в 00:20
поделиться