gc.

gc.

Бенчмаркая foreach и энумераторы: аллокации, которые прятались 10 лет

Уважаемые читатели, в этой статье я хочу рассказать о скрытых аллокациях в обычном foreach и представить свои выводы. Тесты сделаны на .net 8, .net 9 и .net 10 одновременно, чтобы было видно, как одна и та же строчка кода ведет себя на разных рантаймах.Все тесты сделаны с использованием BenchmarkDotNet, полный код представлен на гите, так что каждый может проверить результаты и сделать свои выводы.Будет три истории, и все три про foreach:SortedList из стандартной библиотеки аллоцирует память на каждый foreach, а Dictionary — нет. Из-за одной строчки в сигнатуре метода. И починить это по-нормальному нельзя.

продолжить чтение

Green Tea: новый экспериментальный сборщик мусора в Go

Команда Go for Devs подготовила перевод статьи о новом экспериментальном сборщике мусора Green Tea, появившемся в Go 1.25. Он уже используется в Google и показывает снижение затрат CPU на GC до 40%. Разбираемся, почему это не просто оптимизация, а новый уровень эффективности.В Go 1.25 появился новый экспериментальный сборщик мусора под названием Green Tea, который можно включить, установив переменную окружения GOEXPERIMENT=greenteagc во время сборки. Во многих сценариях работы программы время, затрачиваемое на сборку мусора, сокращается примерно на 10%, а в некоторых случаях — до 40%!

продолжить чтение