內存管理的主要目的合理分配內存,減少內存碎片,及時回收資源,提高內存的使用效率。從操作系統層面來說,各個軟件在運行時向操作系統請求對計算機內存資源進行快速的分配,并且在適當的時候釋放和回收內存資源。常見的一些算法有slab,buddy,jemalloc等思想。從Netty層面來說,其實質就是先分配一塊大內存,然后在內存的分配和回收過程中,使用一些數據結構記錄內存使用狀態,如果有新的分配請求,根據這些狀態信息尋找最合適的位置返回并更新數據結構;內存使用完釋放后,同步修改數據結構。Netty的內存管理分為有緩沖池和無緩沖池的,有緩沖池的內存分配器會在內存回收時,將信息記錄在緩沖池中,下次如果有合適的分配請求則直接從緩沖池中復用。在實踐中,由于多線程網絡請求處理很快,分配和回收在有緩沖池的(pooled)效率更高。