Skip to content

Instantly share code, notes, and snippets.

@Grimitch
Last active November 30, 2025 15:26
Show Gist options
  • Select an option

  • Save Grimitch/7e4459af3689a0729a2c94ceb781df6c to your computer and use it in GitHub Desktop.

Select an option

Save Grimitch/7e4459af3689a0729a2c94ceb781df6c to your computer and use it in GitHub Desktop.
DATAS у .NET 10
Механізм DATAS, який з’явився раніше, у .NET 10 став ефективнішим: тепер він точніше підлаштовує роботу GC під реальне навантаження та розмір живих об’єктів, зменшуючи непотрібні колекції, згладжуючи паузи та враховуючи фрагментацію.
Це забезпечує більш стабільний throughput і плавніші паузи, особливо при високій частоті алокацій або змінному навантаженні, наприклад у web‑серверах, мікросервісах та API.
Write-barrier для Arm64
У .NET 10 реалізація write-barrier для архітектури Arm64 стала точнішою. Write-barrier відслідковує зміни посилань між поколіннями, що необхідно для коректної роботи поколіннєвого GC.
Нова реалізація за замовчуванням підвищує точність і продуктивність GC, скорочуючи паузи на 8–20 % у типовому навантаженні.
Escape‑аналіз і стекові алокації
.NET 10 покращив escape‑аналіз: JIT тепер визначає, коли короткоживучі об’єкти не виходять за межі методу, і розміщує їх на стеку замість managed heap. Це зменшує кількість об’єктів, які GC потрібно відстежувати.
В результаті знижується фрагментація, рідше відбуваються Gen0/Gen1 колекції і зменшується латентність — особливо корисно для високонавантажених сценаріїв з великою кількістю короткоживучих об’єктів.
LOH і компактація пам’яті
Алгоритми компактації LOH у .NET 10 стали ефективнішими: зменшено фрагментацію і оптимізовано переміщення живих об’єктів, що знижує memory‑footprint довготривалих додатків.
Для сервісів, що працюють з великими масивами, зображеннями, серіалізацією або великими структурами даних, це підвищує стабільність і зменшує ризик OutOfMemory‑винятків.
Мульти‑ядерність, NUMA та масштабованість
Server GC у .NET 10 покращив паралельну збірку та фонову компактацію пам’яті, що дає кращу масштабованість на багатоядерних та NUMA-системах.
Завдяки цьому сервіси у контейнерах або віртуальних машинах працюють зі стабільнішим GC: менше навантаження на паузи, оптимальніший розподіл роботи та передбачуване споживання пам’яті.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment