Информация об изменениях

Сообщение Re: Интервью .NET и сборщик мусора от 28.11.2020 8:43

Изменено 28.11.2020 8:50 Serginio1

Re: Интервью .NET и сборщик мусора
Здравствуйте, 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 идет к уменьшению копирования и преобразований. Кроме Span<T> появились ref struct, ReadOnlySpan, Utf8JsonReader итд
Re: Интервью .NET и сборщик мусора
Здравствуйте, Glas, Вы писали:

The updated GetGCMemoryInfo API in .NET 5.0 and how it can help you

Суть не столько вмешиваться, сколько понимать какого влияние сборки мусора на ваш код и влияние вашего кода на сборку мусора.
Для примера Task и ValueTask. Не нужно использовать классы, там где проще обойтись структурой.
Яркий пример Падение производительности при повторной сортировке массива объектов
Автор: Serginio1
Дата: 20.10.03


Суть была в том, что элементы старших поколений в том алгоритме сборки мусора считались неизменяемыми (не учавствуют в сборке мусора ) и при изменении ссылок на объекты велся отдельный подсчет (изменения в их ссылках нужно регистрировать.).
Со временем алгоритмы меняются

Сейчас для уменьшения копирования используют Span&lt;T&gt; и Memory&lt;T&gt;
Народ эксперименты ставил на выделение памяти объектов на стеке A new stackalloc operator for reference types with CoreCLR and Roslyn

Большинство изменений в .Net идет к уменьшению копирования и преобразований. Благодаря ref struct появились не только Span<T> , но и ReadOnlySpan, Utf8JsonReader итд