Ответ 1
Может ли эта библиотека удовлетворить ваши потребности? Не использовал его сам, но выглядит многообещающим. http://www.coralblocks.com/index.php/the-simplicity-of-coralreactor/
Я пишу приложение с высокой производительностью/низким содержанием мусора (вопрос микросекунд), который имеет сетевой компонент. Одна из проблем, с которой я столкнулся, - это реализация встроенного селектора для Java NIO.
Несколько проблем, которые являются проблематичными:
select
, поэтому блокировка фактически бесполезна.Расширение или изменение реализации селектора является нестандартным. Большинство классов являются окончательными, а частные и пакетно-частные члены расположены в пакете sun.nio.ch.*
. Родные методы также усложняют ситуацию.
Есть ли еще более современные реализации селектора, которые могут быть более эффективными?
Сетевые библиотеки, которые я изучил, просто используют встроенный селектор Java под обложками. Любая помощь будет оценена.
Может ли эта библиотека удовлетворить ваши потребности? Не использовал его сам, но выглядит многообещающим. http://www.coralblocks.com/index.php/the-simplicity-of-coralreactor/
Проект Netty имеет реализацию, которая использует Родной транспорт с конечным эффектом epoll:
Начиная с версии 4.0.16 Netty предоставляет собственный перенос сокетов для Linux с использованием JNI. Этот транспорт имеет более высокую производительность и производит меньше мусора [...]
Один из возможных недостатков для вас может быть, он доступен только для Linux.
С положительной стороны Netty - проект с открытым исходным кодом, может быть, исходный код даст вам подсказку или два.