9 подписчиков
Сегодня в чатике обсуждали, что получить из аллокатора незануленную память не так просто, и что в большинстве случаев это не даст вам прироста в скорости. Все дело в том, что память на куче зануляется с запасом и вы никогда не можете знать наверняка, вызвала ваша инициализация зануление, или вы получили предварительно зануленную память. Получить массив с "мусором" можно с помощью GC.AllocateUninitializedArray<T>, но как сказано в той же документации:
Skipping zero-initialization using this API only has a material performance benefit for large arrays, such as buffers of several kilobytes or more.
Как раз потому, что вам нужно выйти за пределы предварительно зануленного сегмента.
Около минуты
7 августа 2022