Сортировка строк без компаратора работает не так, как кажется, и заметно дольше.Замерил на четырёх машинах и четырёх рантаймах, посчитал обращения к компаратору и заглянул в исходники. Читать далее
Перегрузка Span.Sort с компаратором-структурой должна была работать быстрее обычной. Замер показал обратное: памяти она расходует больше всех, а времени тратит больше, чем компаратор-класс — на .NET 8, 9 и 10.В .NET 11 результат меняется, но не везде. Читать далее
ArrayPool используют ради экономии на аллокациях. Но есть размеры, где он делает обратное: массив уходит в LOH, а через new остаётся в нулевом поколении.Один такой размер зашит в .NET по умолчанию — им копируются потоки. Проверил на четырёх машинах и трёх рантаймах. Читать далее
StringBuilder делит текст на чанки по 8000 символов — вчетверо ниже порога кучи больших объектов. Запас такой, что попасть туда невозможно.Но чанк на 400 КБ в этой куче возможен и получить его можно разными способами. Читать далее