Здравствуйте, Glas, Вы писали:
The updated GetGCMemoryInfo API in .NET 5.0 and how it can help you
Суть не столько вмешиваться, сколько понимать какого влияние сборки мусора на ваш код и влияние вашего кода на сборку мусора.
Для примера Task и ValueTask. Не нужно использовать классы, там где проще обойтись структурой.
Яркий пример
Падение производительности при повторной сортировке массива объектовАвтор: Serginio1
Дата: 20.10.03
Суть была в том, что элементы старших поколений в том алгоритме сборки мусора считались неизменяемыми (не учавствуют в сборке мусора ) и при изменении ссылок на объекты велся отдельный подсчет (изменения в их ссылках нужно регистрировать.).
Со временем алгоритмы меняются
Сейчас для уменьшения копирования используют
Span<T> и Memory<T>
Народ эксперименты ставил на выделение памяти объектов на стеке
A new stackalloc operator for reference types with CoreCLR and Roslyn
Большинство изменений в .Net идет к уменьшению копирования и преобразований. Благодаря ref struct появились не только Span<T> , но и ReadOnlySpan, Utf8JsonReader итд