Паямять в Net:

1) Стек | StackОбласть памяти, выделяемая для каждого потока.
Используется для хранения стека вызова функций потока, параметров при вызове функций и локальных переменных (структур и ссылока на классы).
Имеет константный размер, при переполнении приводит к падению программы.
Выделение памяти и отчистка происходит быстро (по сравнению с другими), не задействует сборщик мусора.
2) Куча | Heap

Основная область для хранения экземпляров объектов.
В своей работе задействует сборщик мусора, для оптимизации пространства также происходит процесс дефрагментации.

Состоит из 3 компонентов:
2.1) Основной раздел
2.2) LOH | Large object heap
2.3) POH | Pinned object heap


Ссылки:

Обработка больших объемов данных в памяти на C#
https://habr.com/ru/post/114495/

Память: LOH и Chunked Lists
https://habr.com/ru/post/83929/

.NET Max Memory Use 2GB even for x64 Assemblies
https://stackoverflow.com/questions/982051/net-max-memory-use-2gb-even-for-x64-assemblies

CLRium Оптимизация программ под Garbage Collector
https://habr.com/ru/company/clrium/blog/453082/

Оптимизация сборки мусора в высоконагруженном .NET сервисе
https://habr.com/ru/post/452298/

Monitoring Garbage Collector in C#
https://stackoverflow.com/questions/9669963/monitoring-garbage-collector-in-c-sharp

Теги:
Создал(а) Alexandr Fokin 2020/09/25 16:20