Java NIO,使用或不使用框架?

时间:2011-02-20 18:51:25

标签: java nio multiplexing

我正在开发一个基于Java的服务器,使用NIO Multiplex,我开始看到很多框架......我不明白这些框架是否只能让生活更轻松或者性能也有所提高(例如netty)

4 个答案:

答案 0 :(得分:4)

没有任何框架可以提高其下方的性能。在NIO的情况下,我认为它已经是一个框架本身。我已经回顾了一些像Mina这样的NIO框架,并且确实自己写了一个,但我自己的结论是,这主要是浪费精力,最终会以这种或那种方式受到影响。您所需要的只是一个编写良好的选择循环和适当的数据结构。

答案 1 :(得分:1)

我认为核心问题是他们可以让生活更轻松/更快地提高工作效率。它们可能或多或少相互比较,或者与你自己的代码相比(没有理由认为如果你从头开始编写它,你会在第一次尝试时获得更好的性能 - 当然最终你拥有它所以你可以优化它如果你想要并且有时间死亡。)

最终他们都在使用Java NIO框架和类,唯一比这更好的方法就是做你自己的JNI - 假设你成功了 - 这很难,在编程中真的是它自己的专长。

答案 2 :(得分:0)

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

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

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

答案 3 :(得分:-1)

这取决于您使用java.nio API的知识水平。如果您不确定如何工作,那么您应该使用第三方API。如果您知道如何工作并且能够在没有第三方API的情况下编写代码,那么您绝对应该使用自己的代码而不附加任何字符串。无需额外的东西(第三方API),您就可以获得更好的性能。

我喜欢靠KISS principle生活。