NIO约束级别究竟做了什么,它如何影响性能?

时间:2012-04-28 16:46:33

标签: java constraints nio netty

当我使用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?

1 个答案:

答案 0 :(得分:2)

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

如果算法返回非零值,则会收到该消息。

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