LINUX.ORG.RU

История изменений

Исправление Dark_SavanT, (текущая версия) :

Потому что как раз когда начинается частое выделение/освобождение памяти, из управляемого кода стоит выйти в неуправляемый и делать аллокацию без оглядки на GC. Там можно как раз выделить себе большой буфер и как угодно его шатать. Да, требует терпения, внимательности, понимания «что происходит» и как не уронить всё к херам.

А ещё лучше вместо выделения множества мелких кусков выделить один большой и сделать пул.

На досуге посмотри про танцы вокруг .net, к примеру, и использования больших объектов. Как сейчас не знаю, но несколько лет назад можно было по невнимательности получить утечку между поколениями и в итоге OOM.

Исходная версия Dark_SavanT, :

Потому что как раз когда начинается частое выделение/освобождение памяти, из управляемого кода стоит выйти в неуправляемый и делать аллокацию без оглядки на GC. Там можно как раз выделить себе большой буфер и как угодно его шатать. Да, требует терпения, внимательности, понимания «что происходит» и как не уронить всё к херам.

На досуге посмотри про танцы вокруг .net, к примеру, и использования больших объектов. Как сейчас не знаю, но несколько лет назад можно было по невнимательности получить утечку между поколениями и в итоге OOM.