История изменений
Исправление Dark_SavanT, (текущая версия) :
Потому что как раз когда начинается частое выделение/освобождение памяти, из управляемого кода стоит выйти в неуправляемый и делать аллокацию без оглядки на GC. Там можно как раз выделить себе большой буфер и как угодно его шатать. Да, требует терпения, внимательности, понимания «что происходит» и как не уронить всё к херам.
А ещё лучше вместо выделения множества мелких кусков выделить один большой и сделать пул.
На досуге посмотри про танцы вокруг .net, к примеру, и использования больших объектов. Как сейчас не знаю, но несколько лет назад можно было по невнимательности получить утечку между поколениями и в итоге OOM.
Исходная версия Dark_SavanT, :
Потому что как раз когда начинается частое выделение/освобождение памяти, из управляемого кода стоит выйти в неуправляемый и делать аллокацию без оглядки на GC. Там можно как раз выделить себе большой буфер и как угодно его шатать. Да, требует терпения, внимательности, понимания «что происходит» и как не уронить всё к херам.
На досуге посмотри про танцы вокруг .net, к примеру, и использования больших объектов. Как сейчас не знаю, но несколько лет назад можно было по невнимательности получить утечку между поколениями и в итоге OOM.