2

我正在开发一个基于 Java 的服务器,带有 NIO 多路复用,我开始看到很多框架......我不明白这些框架是否只是让生活更轻松,或者还增加了性能(例如 netty)

4

4 回答 4

4

没有任何框架可以提高它下面的性能。在 NIO 的情况下,我认为它本身已经是一个框架。我已经审查了几个 NIO 框架,例如 Mina,并且确实自己编写了一个,但我自己的结论是,这在很大程度上是浪费精力,最终会以某种方式阻碍。您所需要的只是一个编写良好的选择循环和适当的数据结构。

于 2011-02-20T21:43:19.650 回答
1

我认为核心点是它们让生活更轻松/让你更快地工作。与彼此或与您自己的代码相比,它们的性能可能或多或少(没有理由认为如果您从头开始编写代码,您会在第一次尝试时获得更好的性能 - 当然最终您拥有它,因此您可以优化它以如果你愿意并且有时间就去死)。

最终,他们都在使用 Java NIO 框架和类,而超越这些的唯一方法是做你自己的 JNI——假设你成功了——这是很难的事情,在编程中确实是它自己的专长。

于 2011-02-20T19:01:12.583 回答
0

这取决于你想要做什么。NIO 框架很有用,因为它们为您提供了 NIO 核心操作的抽象。虽然,它们迫使您使用几种您可能不习惯的设计模式。

如果您认为自己适应了这些设计模式,您可能应该使用框架。它将有更少的错误,你将有更少的工作要做,最终你不会看到所有动作发生在哪里。你只需要专注于你想要实现的目标。

与“国内”解决方案相比,它有一些额外的开销,但可以忽略不计。

于 2011-02-20T19:07:31.010 回答
-1

这实际上取决于您对java.nioAPI 的了解程度。如果您不确定事情是如何工作的,那么您可能应该使用 3rd 方 API。如果您知道事情是如何工作的并且能够在没有 3rd 方 API 的情况下编写代码,那么您绝对应该使用自己的代码而不附加任何字符串。您可以在没有额外的东西(第 3 方 API)的情况下获得更好的性能。

我喜欢按照KISS 原则生活。

于 2011-03-22T02:29:20.637 回答