Но и это ещё не всё! На прошлой неделе прочитал про DATAS (Dynamic Adaptation To Application Sizes). Включается через переменную окружения DOTNET_GCDynamicAdaptationMode=1.
😐 Что вообще делает DATAS (Dynamic Adaptation To Application Sizes)?
В этом режиме дотнет научается динамически менять количество мини-подкуч (на дикпике в первой части), частоту сборок мусора и компактизаций в зависимости от нагрузки.
В .NET 8 DATAS работает в экспериментальном режиме — то есть, чтобы её попробовать, нужно явно включить вручную.
Начиная с .NET 9 она уже включена по умолчанию, но у нас на проде пока восьмёрка. Было интересно глянуть, как это отразится на памяти.
Что получилось в итоге?
🔘 Мы вернулись почти к тем же значениям по памяти, которые были до включения GCServerMode. По идее тепрь сборки проходят быстрее, но доказать мне это к сожалению нечем (к сожалению метрики GC Pause не собирались)
🔘 Количество сборок мусора немного выросло — хотя всё равно осталось ниже, чем до включения обоих режимов экспериментов.
🔘 По CPU ни один из переключателей заметно не повлиял на ситуацию
Так что если вы обновитесь до .NET 9 или 10 и вдруг заметите странности в метриках памяти (например снижение в два раза), не переживайте, возможно, это просто DATAS немного шалит.
Ну и, конечно, наглядные дикпики прилагаются для всех этих манипуляций
Post #312
710



- 🔥 6