netty高性能的原因

“性能是设计出来的,而不是测试出来的”。下面我们看Netty的架构设计是如何实现
高性能的。
(1)采用异步非阻塞的I/O类库,基于Reactor 模式实现,解决了传统同步阻塞I/O
模式下一个服务端无法平滑地处理线性增长的客户端的问题。
(2) TCP接收和发送缓冲区使用直接内存代替堆内存,避免了内存复制,提升了I/O
读取和写入的性能。
(3)支持通过内存池的方式循环利用ByteBuf,避免了频繁创建和销毁ByteBuf带来
的性能损耗。
(4)可配置的I/O线程数、TCP参数等,为不同的用户场景提供定制化的调优参数,
满足不同的性能场景。
(5)采用环形数组缓冲区实现无锁化并发编程,代替传统的线程安全容器或者锁。
(6)合理地使用线程安全容器、原子类等,提升系统的并发处理能力。
(7)关键资源的处理使用单线程串行化的方式,避免多线程并发访问带来的锁竞争和
额外的CPU资源消耗问题。
(8)通过引用计数器及时地申请释放不再被引用的对象,细粒度的内存管理降低了
GC的频率,减少了频繁GC带来的时延增大和CPU损耗。
 

你可能感兴趣的:(源码学习)