私が現在取り組んでいる ASP.NET Web アプリ プロジェクトは、(IIS または .NET 開発サーバーで) 再読み込みに時間の経過とともに遅くなります。現在、次のものが必要です。
- F5 デバッグによるロードに 1:28 分
- ビルド後 (再ビルドではない)、ブラウザーでの更新に 41 秒
マシンはかなり高速です - Core 2 Quad 2.40ghz、8 ギガ o' RAM、開発 VM に割り当てられた 2 ギガ o' RAM を使用して HyperV で開発マシンを実行します。
その初期ロードのサイクル全体を追跡/報告する方法はありますか? 基本的な IIS ワーカー プロセスの開始、DLL のロード、実際の .NET コードの実行にかかる時間を確認できれば、すばらしいことです。
コードでプロファイラーを使用できることはわかっています.DB接続の確立時間が非常に遅くなることはありませんが、実際のページが処理される前に、それらのパフォーマンスについて洞察を得たいと思います. CPU モニターがプロセスの途中で少しの間 100% に達し、RAM 使用量が少し跳ね上がっているのがわかります。
プロジェクトの開始時 (4 か月前) には測定を行いませんでしたが、リロードは比較的簡単だったと確信しています。
ビルド中にコーヒーを飲むことしかできないプログラマーの皆さん、どんな助けでも大歓迎です。
アップデート:
JetBrain のdotTraceは (この例では) 優れていました。ありがとうございます。Web プロジェクトを開始するのに最適なインターフェイスを備えており、ほとんどの時間がApplication_Start() ( Global.asax内) に費やされていることがすぐにわかりました。
次のように、他のオプションはこれを選択しませんでした。
TraceオプションはPreInit からのみ開始され、Application_Start() 呼び出しがありません。
StopWatch呼び出しでは、どこを見ればよいかを知る必要がありました。または、printf スタイルのデバッグの古き良き時代に戻る必要がありました...
nprofは .exe をターゲットにしたいため、新しい w3wp.exe インスタンスにアタッチしようとするとターゲット領域が失われます...