当我使用Netty NIO代码启动服务器时,我注意到WebSphere(IBM)JDK的以下输出。我正在使用Netty 3.4.0 FINAL和IBM JDK for WebSphere 6.1。
使用自动检测的NIO约束级别:1(使用更好的NIO提供程序以获得更好的性能)
首先,我很好奇约束级别到底是什么,我似乎找不到任何关于它的信息。其次,我认为我可以使用以下声明覆盖它:
-Djava.nio.channels.spi.constraintLevel=0
什么是“更好的NIO提供商”的意思 - 是说我需要一个更好的JVM - 而不是我必须用于WebSphere的IBM?
答案 0 :(得分:2)
Netty使用自己的算法构建基于JVM和操作系统的“约束级别”参数。您可以找到该算法on grepcode.com的源代码。从这个值,它决定如何启用某些功能。
如果算法返回非零值,则会收到该消息。
你可以使用你提到的系统属性覆盖它,但是当你谈到系统可以做什么时,你告诉Netty你最了解,并且你可能最终会有更差的性能比如你不管它。