私はMVCMiniプロファイラーを使用してアプリケーションの特定の部分の速度をチェックしていますが、後で何かが発生した場合に備えて、「何が問題になっているのか」をチェックする必要がある場合に備えて、そのままにしておきたいと思います。完全なログセットではありませんが、ページの作成に時間がかかる原因を知ることは非常に便利です。
したがって、私の目標は、リクエストに特定のパラメータが含まれている場合にのみ、それを非表示にしてプロファイルを作成することです。しかし、私の試みはどれも私が期待するようには機能しませんでした。
これにより、画面に表示されない(ビュー内のコード)というトリックが実行されました。
@if (Request.QueryString.AllKeys.Contains("showProfiler"))
{
@MvcMiniProfiler.MiniProfiler.RenderIncludes()
}
これが近づいた試みです。ミニプロファイラー情報を正しく非表示にしますが、表示した時点では、表示を停止してからすべてをプロファイリングします。それで、私が私のページをプロファイリングし、それが3秒かかるとしましょう。クエリパラメータを削除して、ページをさらに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);
}
これらはどれも機能しませんでした。何か案は?