JVM Internals: socket-to-socket "zero copy"
От: Golovach Ivan Украина http://kharkovitcourses.blogspot.com
Дата: 29.06.12 09:38
Оценка:
Вопрос к тем, кто силен и в Java и в Linux:

Есть ли возможность организовать "zero copy" из SocketChannel/AsynchronousSocketChannel в SocketChannel/AsynchronousSocketChannel средствами Java под Linux не используя JNI? Т.е. передачу данных из сокета в сокет, при котором:
1) мы не вытаскиваем данные из user space в kernel space
2) соответственно делаем только два копирования при помощи DMA и никаких копирования при помощи CPU
---
FileChannel.transferTo(long position, long count, WritableByteChannel target) как говорят тут под Linux делается через zero-copy. Вопрос в том, могу ли организовать что-то подобное socket-to-socket? Видимо, надо использовать ByteBuffer.allocateDirect.