Last active
November 30, 2025 15:26
-
-
Save Grimitch/7e4459af3689a0729a2c94ceb781df6c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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