Поделиться через


Общие сведения о выделении памяти и значениях данных о времени существования объекта в средствах профилирования

Способ профилирования выделение памяти в .NET средств профилирования Visual Studio собирает данные о размере и числе объектов, созданных при выделении или удаленных при сборке мусора, а также дополнительные сведения о функции стек вызова, когда происходит событие.Стек вызовов — это динамическая структура, в которой хранится информация о функциях, которые выполняются на процессоре.

Требования

  • Visual Studio Ultimate, Visual Studio Premium, Visual Studio Professional

Профилирование памяти прерывает работу процессора при каждом выделении объектов платформы .NET Framework в профилируемом приложении.Если при этом также осуществляется сбор данных о времени существования объектов, профилировщик прерывает работу процессора после каждой сборки мусора в платформе .NET Framework.Данные собираются для каждой профилируемой функции и для каждого типа объекта.

Данные о выделении

Когда происходит очередное событие .memory, общее число и размер выделенных или удаленных объектов памяти увеличивается.

Когда происходит очередное событие выделения .memory, профилировщик увеличивает число экземпляров каждой функции в стеке вызова.После сбора данных в стеке вызова выполняется код тела только одной функции.Остальные функции в стеке являются родительскими в иерархии вызовов функций, ожидающих возврата значений вызванными ими функциями.

  • Для события выделения профилировщик увеличивает число эксклюзивных образцов функции, выполняющей его инструкции.Поскольку эксклюзивный образец также учитывается при подсчете общего числа (инклюзивных) образцов функции, увеличивается также и число инклюзивных образцов активной в данный момент функции.

  • Профилировщик увеличивает счетчики инклюзивных выборок для всех остальных функций, находящихся в стеке вызовов.

Данные о времени существования

Сборщик мусора .NET Framework управляет выделением и освобождением памяти для приложения.Для оптимизации производительности сборщика мусора управляемая куча делится на три поколения: 0, 1 и 2.Сборщик мусора времени выполнения хранит новые объекты в поколении 0.Уровень объектов, оставшихся после сборок мусора, повышается, и они сохраняются в поколении 1 и 2.

Сборщик мусора освобождает память путем удаления целого поколения объектов.Для объектов, созданных профилированным приложением, в представлении "Время жизни объекта" отображаются количество и размер объектов, а также поколение, в котором они были удалены.