組み込みのプロファイラーを使用して、Visual Studio で .NET アプリケーションのプロファイルを作成しようとしています。CPU のサンプルを追跡していると、奇妙なものに出会います。アプリケーションの一部には、次のものがあります (わかりやすくするために簡略化しています)。
var requestObject = new RequestObject(parameters);
var result = GetResult(requestObject,"stringvalue");
2 行目はサンプルの約 10% を使用していることがわかります。ただし、メソッド「GetResult()」は約 7% しか使用せず、残りは [clr.dll] にあるようです。clr.dll がガベージ コレクション、JIT コンパイル、コンテキスト切り替えなどを担当していることを知っています。また、「GetResult()」メソッドはかなり複雑です (複数のアセンブリにまたがり、複数のスレッドを使用する可能性があります)。メソッドが返されると取得されます。「RequestObject」も少し複雑なので、それが関係している可能性があります。
私の質問は次のとおりです。ここで何が起こっているのかを正確に追跡できますか?また、高速化するにはどうすればよいですか? 3% はあまり聞こえませんが、'GetResult()' は、テスト時に 1 回しか実行されない場合でも、プログラムの存続期間中に何度も呼び出されることに注意してください。そして、アプリケーションの応答時間を短縮できることは非常に重要です。
ご回答ありがとうございます。