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

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

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