Использование памяти.net, что определяет размер частного байта
Смущает частные байты!
В настоящее время анализируется использование памяти нашим приложением C# .NET с помощью профилировщика ANTS. Вот наши результаты, полученные после запуска с основной формой, видимой на экране. Никакой другой функциональности не было использовано.
Gen 0 Heap - 5.8MB
Gen 1 Heap - 2,5 МБ
Gen 2 Heap - 13,9 МБ
Байт во всех кучах - 17 МБ
Куча больших объектов - 0,7 МБ
Частные байты - 130 МБ
Рабочий набор - 150 МБ
Если количество байтов во всех кучах составляет всего 17 МБ, почему у нас такое большое выделение частных байтов? Частные байты, выделенные системой, или частные байты начинаются с нуля, расширяются, когда они заполняются программным обеспечением? то есть являются ли частные байты пузырем, который на самом деле может использоваться только частично? Если так, что определяет его размер?
2 ответа
Частные байты - это все виртуальные выделения процесса, которые нельзя использовать совместно с другими процессами (т. Е. Исключая код и файлы, отображенные в память). Это будет включать в себя все NT (собственные) кучи, любую управляемую кучу, стеки и любую память, явно выделенную приложением ( VirtualAlocEx).
Ты можешь использовать !dumpheap -stat
чтобы получить подробное использование памяти CLR. Смотрите CLR Утечка памяти
От Red-Gate: Общая информация о "Private Bytes"
Частные байты включают свободное место в кучах.NET, а также неуправляемое использование памяти.