Как работают Direct ByteBuffers в Java NIO?

Senior
213 просмотров
AFK Offer AI

ByteBuffer.allocateDirect() аллоцирует память напрямую в native memory (вне heap). При IO операциях JVM не нужно копировать данные из heap в native — zero-copy transfer. Это ускоряет IO интенсивные операции. Очищаются через Cleaner (reference queue mechanism) — не сразу. Проблема: много мелких direct buffers = много native памяти и медленная очистка. Netty использует pooled direct buffers чтобы избежать аллокации.

Следующий вопрос

Как добавить индекс без downtime в PostgreSQL и как сделать это через Java?