RU

Бенчмаркая Enumerable.Chunk: почему батчей меньше, а проход до ×2,7 дольше

Chunk делит коллекцию на массивы — одна строка кода. Но есть размер чанка, после которого он замедляется в разы при тех же данных и той же памяти. А…

Enumerable.ChunkLINQкуча больших объектовLOHсборщик мусорачанкибатчингBenchmarkDotNet.NET 10аллокации
Habr
RU

Бенчмаркая StringBuilder: подстава на длинном тексте

StringBuilder делит текст на чанки по 8000 символов — вчетверо ниже порога кучи больших объектов. Запас такой, что попасть туда невозможно. Но чанк…

StringBuilderLOHкуча больших объектовчанкисборщик мусораоптимизация памятиаллокацииBenchmarkDotNet.NET 10Clear
Habr
RU

Бенчмаркая ArrayPool: подстава при копировании потоков — 131 072 байта в LOH

ArrayPool используют ради экономии на аллокациях. Но есть размеры, где он делает обратное: массив уходит в LOH, а через new остаётся в нулевом покол…

ArrayPoolLOHкуча больших объектовStream.CopyToFileStreamсборщик мусораоптимизация памятиBenchmarkDotNet.NET 10бенчмарк
Habr
RU

Бенчмаркая ZLinq: один IEnumerable в сигнатуре — и .NET 10 быстрее библиотеки в 3,9 раза

ZLinq — замена LINQ без аллокаций. На .NET 8 и .NET 9 время одинаковое. На .NET 10 иначе: массив тот же, но если параметр объявлен как IEnumerable,…

ZLinqLINQIEnumerableаллокациибенчмаркBenchmarkDotNetпроизводительность.NET 10JITдизассемблер
Habr
RU

Бенчмаркая System.Text.Json: те же данные, те же настройки, до ×4,3 разницы

В документации к PropertyNameCaseInsensitive есть предупреждение про накладные расходы, но не сказано, когда они появятся. Замерил на четырёх машина…

System.Text.JsonJsonSerializerOptionsPropertyNameCaseInsensitiveдесериализациякешпроизводительностьбенчмаркBenchmarkDotNet.NET 10оптимизация
Habr
RU

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

Уважаемые читатели, в этой статье я хочу рассказать о скрытых аллокациях в обычном foreach и представить свои выводы. Тесты сделаны на .net 8, .net…

benchmarkdotnetforeachboxingаллокацииGCJITescape analysis.NET 10производительностьSortedList
Habr