Netty 采用NIO 而非AIO 的理由
生活随笔
收集整理的這篇文章主要介紹了
Netty 采用NIO 而非AIO 的理由
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1.Netty 不看重Windows 上的使用,在Linux 系統(tǒng)上,AIO 的底層實現(xiàn)仍使用EPOLL,沒有很好實現(xiàn)AIO,因此在性能上沒有明顯的優(yōu)勢,而且被JDK 封裝了一層不容易深度優(yōu)化
2.Netty 整體架構(gòu)是reactor 模型, 而AIO 是proactor 模型, 混合在一起會非?;靵y,把AIO 也改造成reactor 模型看起來是把epoll 繞個彎又繞回來
3.AIO 還有個缺點是接收數(shù)據(jù)需要預(yù)先分配緩存, 而不是NIO 那種需要接收時才需要分配緩存, 所以對連接數(shù)量非常大但流量小的情況, 內(nèi)存浪費很多
4.Linux 上AIO 不夠成熟,處理回調(diào)結(jié)果速度跟不到處理需求,比如外賣員太少,顧客太多,供不應(yīng)求,造成處理速度有瓶頸(待驗證)
?
總結(jié)
以上是生活随笔為你收集整理的Netty 采用NIO 而非AIO 的理由的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Netty 支持的功能与特性
- 下一篇: RPC 概述