Исходный код вики Использование памяти

Версия 5.1 от Alexandr Fokin на 2021/11/21 19:25

Скрыть последних авторов
Alexandr Fokin 1.1 1
Alexandr Fokin 3.1 2 Паямять в Net:
3
4 1) **Стек | Stack** - область памяти, выделяемая для каждого потока.
5 Используется для хранения стека вызова функций потока, параметров при вызове функций и локальных переменных (структур и ссылока на классы).
6 Имеет константный размер, при переполнении приводит к падению программы.
7 Выделение памяти и отчистка происходит быстро (по сравнению с другими), не задействует сборщик мусора.
8
9 2) **Куча | Heap** - основная область для хранения экземпляров объектов.
10 В своей работе задействует сборщик мусора, для оптимизации пространсва также происходит процесс дефрагментации.
Alexandr Fokin 5.1 11 Состоит из 4 компонентов:
Alexandr Fokin 3.1 12 2.1) Основной раздел
13 2.2) LOH | Large object heap
14 2.3) POH | Pinned object heap
Alexandr Fokin 5.1 15 2.4) Unmanaged memory | Неуправляемая память. Может использовать для написания менее безопасного, но более быстрого кода, а также для взаимодествия с библиотеками из других языков.
Alexandr Fokin 3.1 16
17
18 Ссылки:
19
Alexandr Fokin 2.1 20 Обработка больших объемов данных в памяти на C#
Alexandr Fokin 1.1 21 https://habr.com/ru/post/114495/
Alexandr Fokin 3.1 22
Alexandr Fokin 2.1 23 Память: LOH и Chunked Lists
Alexandr Fokin 1.1 24 https://habr.com/ru/post/83929/
25
Alexandr Fokin 3.1 26 .NET Max Memory Use 2GB even for x64 Assemblies
Alexandr Fokin 1.1 27 https://stackoverflow.com/questions/982051/net-max-memory-use-2gb-even-for-x64-assemblies
Alexandr Fokin 3.1 28
Alexandr Fokin 4.1 29 CLRium Оптимизация программ под Garbage Collector
30 https://habr.com/ru/company/clrium/blog/453082/