Visual Studioでプロファイラーを使用して高価な関数を追跡していると、ほとんどの作業が[clr.dll]で行われることがあります。それは基本的にブラックボックスに相当し、なぜそこに多くの時間を費やしているのかを追跡する方法があるのだろうかと思います。
clr.dllは、JITのコンパイル、アセンブリの読み込み、アプリドメインの管理、ガベージコレクション、リフレクションなどを処理すると思います。しかし、どのコードが多くの時間を費やしているのかを実際に判断するのは非常に困難です。
明らかに、ランタイム自体以外のコードがclr.dllで多くの時間を費やしているので、どのコードに問題があるのかをどのように追跡しますか?