Ага, думал о нём, но он похоже на больших хорошо работает, на маленьких GC работает шустрее. Я думаю ещё данные попробовать перепаковать по разному, хочу попробовать применить и SoA и пул
int[] на 2-4 элемента ... double[16][16] и такого миллионы
Вы переписали на большие массивы из эррейпула и свой аллокатор, выдающий Memory/Span? Ибо если у вас миллионы таких массивов, то эррейпул выдохся бы в миг
Плюс когда о GC говоришь в контексте перфа, я думаю лучше использовать метрику GC Cpu Time, смотреть сколько времени процесс мусор собирает. На примере F# тулинга это где-то 35% за проход тайп чека (по результатам PerfView). Пиздец.
Вы переписали на большие массивы из эррейпула и свой аллокатор, выдающий Memory/Span? Ибо если у вас миллионы таких массивов, то эррейпул выдохся бы в миг
нет, у них средний срок жизни десятки миллисекунд и они там в цикле аллоцировались многократно, и в результате отлично легли на пстоянный реюзинг одних и тех же буферов
нет, у них средний срок жизни десятки миллисекунд и они там в цикле аллоцировались многократно, и в результате отлично легли на пстоянный реюзинг одних и тех же буферов