(WebForms) Web アプリのランタイム プロファイリング ツールを検討しています。
MiniProfiler と Glimpse を検討しました。
MiniProfiler では、プロファイリング メッセージをログに記録するのは簡単です (実際、唯一の方法ですか?)。
var profiler = MiniProfiler.Current;
using (profiler.Step("Doing complex stuff"))
{
using (profiler.Step("Step A"))
{ // something more interesting here
Thread.Sleep(100);
}
using (profiler.Step("Step B"))
{ // and here
Thread.Sleep(250);
}
}
Glimpse では、リクエスト ライフサイクルの自動プロファイリングを利用できますが、カスタム ビジネス ロジック シナリオをプロファイリングする最も簡単な方法が何であるかはわかりません。
Glimpse が「Trace」タブでサポートしていることをここで読みましSystem.Diagnostics.(Trace|Debug).Trace*()
たが、それは特定の時点のみを示しており、ネストされたスコープをプロファイルしていないようです。カスタム データをより構造化された方法でトレースできると便利です。たとえば、[タイムライン] タブなどです。
問題は、Glimpse で MiniProfiler のような構造化されたカスタム ロギングを (できれば簡単に) 取得できるかどうかです。
PS。MiniProfiler データを表示する Glimpse 拡張機能があることは知っていますが、放棄されているようです。
PPS。Glimpse が私の WebForms プロジェクト (IIS クラシック パイプライン モード) で (ほぼ) 箱から出してすぐに動作するのを見て、うれしい驚きを覚えました。私の知る限り、MiniProfilerはその構成ではうまく機能しません。MVCに偏っています。