RU

Бенчмаркая Span.Sort: выбрал компаратор-структуру — и получил 88 байт на вызов

Перегрузка Span.Sort с компаратором-структурой должна была работать быстрее обычной. Замер показал обратное: памяти она расходует больше всех, а вре…

Span.SortкомпараторIComparerBenchmarkDotNetаллокациибоксингпроизводительность.NET 11машинный код
Habr
RU

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

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

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

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

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

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

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

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

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

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

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

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

async‑profiler в production: CPU, аллокации, lock contention и чтение flame graph

Профилирование Java‑приложений в production часто упирается не в отсутствие инструментов, а в их ограничения: CPU горит в&n…

async-profilerJavaJVMпрофилированиеflame graphпроизводительностьаллокациимногопоточностьlock contentionlatency
Habr
RU

Последовательное иерархическое распределение сумм. Создание БД. Распределение сумм по правилам средствами PostgreSQL

В первой статье была описана задача распределения сумм затрат между отделами по заданным правилам, с учётом того что отделы могут передавать свои за…

аллокацииаллокацияsqlpgsqlpostgresqlpostgresql performance