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

4
我注意到在使用Netty NIO代码启动我的服务器时,WebSphere(IBM)JDK输出了以下内容。我正在使用Netty 3.4.0 FINAL与WebSphere 6.1的IBM JDK。

使用自动检测的NIO约束级别:1(使用更好的NIO提供程序以获得更好的性能)

首先,我很好奇约束级别到底是做什么的,我似乎找不到任何相关信息。其次,我认为我可以通过使用下面的语句来覆盖它:
-Djava.nio.channels.spi.constraintLevel=0

什么是“更好的NIO提供者”意味着 - 这是否意味着我需要更好的JVM - 而不是我必须用于WebSphere的IBM?
1个回答

2
Netty根据JVM和操作系统使用自己的算法构建“约束级别”参数。您可以在on grepcode.com上找到该算法的源代码。基于这个值,它会决定如何启用某些功能。
如果算法返回一个非零值,那么你就会得到这个消息。
你可以使用你提到的系统属性来覆盖它,但这样你告诉Netty你最了解系统可以做什么,可能会导致性能不佳,比起不管它更糟糕。

那我应该就不管它了吗?我的担忧是性能下降了,因此出现了警告,除非我采取某种行动。我正在寻找最佳性能,但受限于使用IBM WebSphere JDK。 - MBY
@BrianYoder:与其他平台相比,性能可能会有所降低。但它仍然可能足够好。在尝试之前你不会知道。 - skaffman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接