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損耗

PS:摘抄自《Netty權威指南》

發佈了41 篇原創文章 · 獲贊 32 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章