Я контролирую мою проблему с высокой памятью .NET с использованием счетчиков производительности. Для измерения памяти .NET мне показалось, что # Байты во всех часах производительности Heaps обеспечивают общее использование управляемой памяти. Однако согласно MSDN, этот счетчик не содержит Gen 0 Heap Size.Почему # Байты во всех кучах считаются хорошей мерой для общей управляемой кучи
Отображает сумму Gen 1 Размер кучи, Gen 2 Размер кучи и больших объектов счетчиков Размер кучи. Этот счетчик указывает текущую память , выделенную в байтах на кучи мусора.
Если приложение .NET выделяет много памяти в генераторе 0, то разве это не должно учитываться в # Bytes во всех Heaps? Я знаю, что есть отдельный счетчик для размера кучи Gen 0, но так же для Gen 1, Gen 2 и LoH.
Вы не можете выделить «огромную память» в гене 0. Большие выделения выполняются в большой кучей объектов. Имя не совпадение. –
Возьмите дамп памяти в высокой точке памяти и проанализируйте его с помощью WinDbg или профилировщика. Это скажет вам, что использует всю память. – xxbbcc
Извините, я имел в виду много распределений, которые не обязательно большие, чтобы идти на LOH. Извините за мой английский, но я всегда стараюсь использовать соответствующие формулировки :) Я надеюсь, что выяснил это в моем вопросе сейчас – BKS