22

C#コンソールアプリケーションでmvc-mini-profilerを使用するにはどうすればよいですか?

また、興味深いことに、mvc miniプロファイラーは実際のプロファイル統計を各Webページの左側に配置しますか、それともカスタムjavascriptコードを手動で実行するだけですか?

mvcサンプルをダウンロードして実行しましたが、結果をそのjavascriptポップアップに表示するコードが見つかりません。

4

3 に答える 3

20

はい、できます!また、NuGetパッケージを作成して、実行をさらに簡単にしました。

MiniProfiler.Windowsをチェックしてください:http: //nootn.github.com/MiniProfiler.Windows/

また、プロファイリング用の優れたコンソールアプリを設計する方法の詳細については、http: //healthedev.blogspot.com.au/2012/07/performance-profiling-console-or-winwpf.htmlをご覧ください。

于 2012-07-10T06:08:33.343 に答える
11

プロファイル接続フックなどと同様に、コアタイミングオブジェクト(MiniProfiler)は正常に機能するはずです。ただし、次のことを行う必要があります。

  • 独自のUIを追加して、結果を表示します
  • 独自のスコープ/ライフタイムを定義します(Webの場合は簡単です-http-requestだけです)
  • 独自のストレージフックを提供します(これには拡張APIがあり、デフォルトでhttp-contextを使用しますIIRC)
  • プロファイラーを手動で渡すか、現在のプロファイラーインスタンスを検索するための賢明な方法を定義します

一部の人がWPFなどに使用しているので、使用できますが、IMOは、意味のあるビットだけを選択し、それらを使用して、すばらしい追加のカスタムライブラリを作成するのが理にかなっているかもしれません。

于 2011-09-11T11:31:38.157 に答える
3

MiniProfiler V4 (現在プレリリース) にはメソッドがありRenderPlainText()ます。追加のセットアップなしで、コンソールまたはマルチスレッド非同期サーバー アプリケーションで直接使用できます。

public void Foo()
{
    MiniProfiler.Start("Interesting subroutine");
    using (MiniProfiler.Current.Step("Step1"))
    {
        using (MiniProfiler.Current.Step(nameof(AccessDb)))
        {
            AccessDb();
        }
        Thread.Sleep(100);
    }
    using (MiniProfiler.Current.Step("Step2"))
    {
        Thread.Sleep(100);
    }
    MiniProfiler.Stop();
    Console.WriteLine(MiniProfiler.Current.RenderPlainText());
}

このコード スニペットは、次の出力を生成します。

PCName at 8/2/2017 8:44:36 AM
  興味深いサブルーチン = 309.2ms
> Step1 = 204.8ms
>> AccessDb = 103.8ms (sql = 56.2ms in 2 cmds)
> Step2 = 100.9ms

ご覧のとおり、出力にはカスタム タイミング (この場合は sql) の短い要約が含まれています。独自のバージョンのRenderPlainText().

詳細については、次を確認してください。

于 2017-08-02T09:05:43.687 に答える