⭐️ Асинхронность постепенно переезжает в рантайм
Начиная с C# 5, async/await работал за счёт компиляторной машины состояний. Компилятор превращал каждый асинхронный метод в специальную структуру, которая хранила состояние между точками await.
В .NET 11 появилась Runtime Async — новая реализация, которая переносит значительную часть этой инфраструктуры в сам рантайм. Библиотеки .NET уже начинают использовать новый механизм там, где он поддерживается.
Что это даёт:
✅ более чистые стек-трейсы без лишних кадров машины состояний;
✅ меньше служебного кода и накладных расходов;
✅ более эффективное возобновление выполнения после await.
В документации Microsoft приводится синтетический бенчмарк с большим количеством приостановок и возобновлений, где время выполнения снизилось примерно с 6357 мс до 457 мс 🌈
Пока функция находится в статусе preview. Для своих проектов её можно включить через секцию Features с параметром runtime-async=on. Для net11.0 отдельный флаг EnablePreviewFeatures уже не требуется.
🔗 Microsoft Learn — What’s new in .NET 11 Runtime
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека шарписта
#il_люминатор
Post #7163
3.42K
- 🔥 27
- ❤ 5