メモリ使用量に関連する VS 2015 の診断ツールで使用しようとしている次の簡単なプログラムがあります。
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Begin");
Console.ReadLine();
Goo();
Console.WriteLine("End");
Console.ReadLine();
}
private static void Goo()
{
var list = new List<string>();
for (var i = 0; i < 1000; i++)
{
Foo(list);
}
}
private static void Foo(IEnumerable<string> strings)
{
foreach (var str in strings)
{
}
}
}
このアプリケーションのプロジェクトのプロファイリング中に、いくつかのスナップショットを撮り、1000
ボックス化されList<string>+Enumerator
たオブジェクトが表示されることを期待していました。たとえば、JetBrains のdotMemory
製品ではこのような情報を取得します。しかし、何らかの理由で、VSのツールでこの情報を見ることができません...明らかに何かが欠けています...誰かが私を正しい方向に向けることができますか?
上記のスナップショットでmscorlib
わかるように、実行中のプログラムに関する情報が表示されない場合にのみ、モジュールに関する情報を取得します。何が欠けていますか?...以下の詳細情報:
Start Diagnostic Tools Without Debugging
ビジュアルスタジオで使用しました- スナップショットを撮って開いた後、オプションの選択を解除し
Collapse small objects
て、これが情報を隠しているかどうかを確認しましたが、それも役に立ちませんでした.
更新 (ユーザーの回答に応答) : dotMemory バージョン 4.4 を使用しています。以下は、私が取得したデータのスナップショットです。注:メッセージが表示Collect Allocations
されたら、キーを押す前に必ずボタンをクリックしてください。Begin