我有以下简单程序,我试图将其与 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