java – NIO约束级别的确切作用是什么,它如何影响性能?

当我使用Netty NIO代码启动服务器时,我注意到WebSphere(IBM)JDK的以下输出.我正在使用Netty 3.4.0 FINAL和IBM JDK for WebSphere 6.1.

Using the autodetected NIO constraint level: 1 (Use better NIO provider for better performance)

首先,我很好奇约束级别到底是什么,我似乎无法找到任何关于它的信息.其次我认为我可以使用下面的语句覆盖它:

-Djava.nio.channels.spi.constraintLevel=0

什么是“更好的NIO提供商”的意思 – 是说我需要一个更好的JVM – 而不是我必须用于WebSphere的IBM?

最佳答案 Netty使用自己的算法构建基于JVM和操作系统的“约束级别”参数.您可以找到该算法
on grepcode.com的源代码.从该值开始,它决定如何启用某些功能.

如果算法返回非零值,那么您将获得该消息.

你可以用你提到的系统属性覆盖它,但是当你谈到系统可以做什么时,你告诉Netty你最了解,并且你可能最终表现得比你不管它时更差.

点赞