4

当我使用 Netty NIO 代码启动服务器时,我注意到来自 WebSphere (IBM) JDK 的以下输出。我将 Netty 3.4.0 FINAL 与 IBM JDK 一起用于 WebSphere 6.1。

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

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

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

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

4

1 回答 1

2

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

如果算法返回一个非零值,那么您会收到该消息。

可以使用您提到的系统属性覆盖它,但是您告诉 Netty,您最了解系统可以做什么,并且您最终可能会得到比您不理会它更差的性能。

于 2012-04-28T17:17:12.833 回答