Cha*_*N B 23 java io performance nio blocking
我几乎已经决定不使用异步,非阻塞的Java NIO.一般而言,复杂性与收益是非常值得怀疑的,我认为在这个项目中尤其不值得.
但是我读到的关于NIO的大部分内容,以及与旧版java.io.*的比较都集中在使用java.io.*的非阻塞,异步NIO与线程每连接同步I/O上.但是,NIO可以用于同步,阻塞,线程连接模式,这似乎很少讨论.
问题在于:同步阻塞NIO与传统同步阻塞I/O(java.io.*)是否有任何性能优势?两者都是线程连接.复杂性如何比较?
请注意,这是一个普遍的问题,但目前我主要关注TCP套接字通信.
Mic*_*ker 11
它基本上归结了并发连接的数量以及这些连接的繁忙程度.阻塞(每个连接的标准线程)在延迟和吞吐量方面都更快(对于简单的回显服务器来说大约快两倍).因此,如果您的系统可以处理为每个连接维护一个线程(根据经验<<1000个连接),请选择阻塞方法.如果您有大量空闲连接(例如Comet长轮询请求或IMAP空闲连接),那么切换到非阻塞架构可能有助于扩展您的系统.
我不能具体谈论这项技术,但异步库提供同步操作以方便调试的情况并不罕见。
例如,如果您遇到问题,您可以消除逻辑的异步部分,而无需重写整个流程。这特别有用,因为同步进程通常更容易使用。
| 归档时间: |
|
| 查看次数: |
7420 次 |
| 最近记录: |