备用Java选择器实现

Lap*_*son 14 java java-native-interface nio

我正在编写一个具有网络组件的高性能/低垃圾应用程序(微秒级).我遇到的一个痛点是内置的Selector Selector for Java NIO的实现.

一些有问题的事情:

  • 大量的对象创建.几乎每次调用selectedKeys()都会创建很多对象.迭代器,装箱/拆箱,你的名字.大多数其他情况不是问题,但我正在编写的应用程序需要创建尽可能少的垃圾.
  • 分层锁定和同步.在构建selectorImpls时,一堆Java锁原语不存在.结果它很笨重而且不是最佳的.在我的用例中,只有一个线程调用,select因此锁定实际上是无用的.

扩展或更改选择器实现是不可能的.大多数类都是最终的,私有和包私有成员位于sun.nio.ch.*包中.原生方法也使事情变得复杂.

是否还有其他更现代的选择器实现可能更高效?

我检查过的网络库只是使用了内置的Java选择器.任何帮助,将不胜感激.

Ima*_*ica 2

也许这个库可以满足您的需求?我自己没有使用过,但看起来很有希望。 http://www.coralblocks.com/index.php/the-simplicity-of-coralreactor/