У меня есть следующая простая программа, которую я пытаюсь использовать с помощью диагностических инструментов VS 2015, связанных с использованием памяти.Невозможно найти ожидаемые объекты в профиле использования памяти 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
сообщения
Я обновил свое сообщение с моментальным снимком данных, записанных в 'dotMemory'. Убедитесь, что вы нажимаете «Собирать распределения» до ввода любой клавиши после появления строки «Begin» –
Обновлен ответ –
@KiranChalla, пожалуйста, примите ответ, если я ответил на ваш вопрос –