2019年11月12日

摘要:PooledByteBufAllocator負責初始化PoolArena(PA)和PoolThreadCache(PTC)。它提供了一系列的接口,用來創建使用堆內存或直接內存的PooledByteBuf對象,這些接口只是一張皮,內部完全使用了PA和PTC的能力。初始化過程分兩個步驟,首先初始化一系列 閱讀全文
posted @ 2019-11-12 14:15 自帶buff 閱讀 (94) 評論 (0) 編輯

2019年11月5日

摘要:前面兩章分析的PoolChunk和PoolSubpage,從功能上來說已經可以直接拿來用了。但直接使用這個兩個類管理內存在高頻分配/釋放內存場景下會有性能問題,PoolChunk分配內存時算法復雜度最高的是allocateNode方法,釋放內存時算法復雜度最高的是free方法。 PoolChunk中 閱讀全文
posted @ 2019-11-05 15:58 自帶buff 閱讀 (46) 評論 (0) 編輯

2019年10月29日

摘要:PoolChunk用來分配大于或等于一個page的內存,如果需要小于一個page的內存,需要先從PoolChunk中分配一個page,然后再把一個page切割成多個子頁-subpage,最后把內存以subpage為單位分配出去。PoolSubpage就是用來管理subpage的。 一個page會被分 閱讀全文
posted @ 2019-10-29 15:24 自帶buff 閱讀 (78) 評論 (0) 編輯

2019年10月22日

摘要:PoolArena實現了用于高效分配和釋放內存,并盡可能減少內存碎片的內存池,這個內存管理實現使用PageRun/PoolSubpage算法。分析代碼之前,先熟悉一些重要的概念: page: 頁,一個頁是可分配的最小的內存塊單元,頁的大小:pageSize = 1 << n (n <= 12)。 c 閱讀全文
posted @ 2019-10-22 16:10 自帶buff 閱讀 (163) 評論 (0) 編輯

2019年10月16日

摘要:PooledByteBuf是使用PoolArena內存 閱讀全文
posted @ 2019-10-16 09:32 自帶buff 閱讀 (122) 評論 (0) 編輯

2019年10月9日

摘要:unpooled類型的ByteBuf內存管理 閱讀全文
posted @ 2019-10-09 15:03 自帶buff 閱讀 (174) 評論 (0) 編輯

2019年9月24日

摘要:    ByteBuf的I/O主要解決的問題有兩個: 管理readerIndex和writerIndex。這個在在AbstractByteBuf中解決。 從內存中讀寫數據。ByteBuf的不同實現主要使用兩種內存:堆內存表示為byte[];直接內,可能是Dir 閱讀全文
posted @ 2019-09-24 14:47 自帶buff 閱讀 (170) 評論 (0) 編輯

2019年9月21日

摘要:netty ByteBuf的設計原理 閱讀全文
posted @ 2019-09-21 13:53 自帶buff 閱讀 (39) 評論 (0) 編輯

2019年9月3日

摘要:本章不會直接分析Netty源碼,而是通過使用Netty的能力實現一個自定義協議的服務器和客戶端。通過這樣的實踐,可以更深刻地理解Netty的相關代碼,同時可以了解,在設計實現自定義協議的過程中需要解決的一些關鍵問題。 本周章涉及到的代碼可以從github上下載: https://github.com 閱讀全文
posted @ 2019-09-03 16:52 自帶buff 閱讀 (182) 評論 (0) 編輯

2019年8月29日

摘要:數據包編解碼過程中主要的工作就是:在編碼過程中進行序列化,在解碼過程中從Byte流中分離出數據包然后反序列化。在MessageToByteEncoder中,已經解決了序列化之后的問題,ByteToMessageDecoder中已經部分第解決了從Byte流中分離出數據包的問題。實現具體的數據包編解碼, 閱讀全文
posted @ 2019-08-29 15:58 自帶buff 閱讀 (135) 評論 (0) 編輯

2019年8月20日

摘要:編解碼框架和一些常用的實現位于io.netty.handler.codec包中。 編解碼框架包含兩部分:Byte流和特定類型數據之間的編解碼,也叫序列化和反序列化。不類型數據之間的轉換。 下圖是編解碼框架的類繼承體系: 其中MessageToByteEncoder和ByteToMessageDeco 閱讀全文
posted @ 2019-08-20 14:50 自帶buff 閱讀 (116) 評論 (0) 編輯

2019年8月14日

摘要:io.netty.handler.timeout.IdleStateHandler功能是監測Channel上read, write或者這兩者的空閑狀態。當Channel超過了指定的空閑時間時,這個Handler會觸發一個IdleStateEvent事件。 在第一次檢測到Channel變成active 閱讀全文
posted @ 2019-08-14 15:34 自帶buff 閱讀 (154) 評論 (1) 編輯

2019年7月29日

摘要:本章開始分析ChannelHandler實現代碼。ChannelHandler是netty為開發者提供的實現定制業務的主要接口,開發者在使用netty時,最主要的工作就是實現自己的ChannelHandler。ChannelHandler在設計上需要和ChannelPipeline配合共同實現pip 閱讀全文
posted @ 2019-07-29 16:00 自帶buff 閱讀 (92) 評論 (0) 編輯

2019年3月28日

摘要:寫數據是NIO Channel實現的另一個比較復雜的功能。每一個channel都有一個outboundBuffer,這是一個輸出緩沖區。當調用channel的write方法寫數據時,這個數據被一系列ChannelOutboundHandler處理之后,它被放進這個緩沖區中,并沒有真正把數據寫到soc 閱讀全文
posted @ 2019-03-28 15:59 自帶buff 閱讀 (264) 評論 (0) 編輯

2019年2月27日

摘要:本章分析Nio Channel的數據讀取功能的實現。 Channel讀取數據需要Channel和ChannelHandler配合使用,netty設計數據讀取功能包括三個要素:Channel, EventLoop和ChannelHandler。Channel有個read方法,這個方法不會直接讀取數據, 閱讀全文
posted @ 2019-02-27 00:08 自帶buff 閱讀 (257) 評論 (1) 編輯

2019年1月30日

摘要:Channel提供了3個方法用來實現關閉清理功能:disconnect,close,deregister。本章重點分析這個3個方法的功能的NIO實現。 disconnect實現: 斷開連接 disconnect方法的調用棧如下: disconnect稍微復雜一些, 在io.netty.channel 閱讀全文
posted @ 2019-01-30 10:56 自帶buff 閱讀 (1259) 評論 (0) 編輯

2019年1月22日

摘要:創建一個channel實例,并把它register到eventLoopGroup中之后,這個channel然后處于inactive狀態,仍然是不可用的。只有在bind或connect方法調用成功之后才能正常。因此bind或connect算是channel初始化的最后一步,本章這就重點分析這兩個功能的 閱讀全文
posted @ 2019-01-22 15:47 自帶buff 閱讀 (296) 評論 (0) 編輯

2019年1月15日

摘要:結構設計 Channel的NIO實現位于io.netty.channel.nio包和io.netty.channel.socket.nio包中,其中io.netty.channel.nio是抽象實現,io.netty.channel.socket.nio最終實現。下面是Channel NIO相關類的 閱讀全文
posted @ 2019-01-15 13:45 自帶buff 閱讀 (272) 評論 (0) 編輯

2019年1月8日

摘要:事件觸發、傳遞、處理是DefaultChannelPipleline實現的另一個核心能力。在前面在章節中粗略地講過了事件的處理流程,本章將會詳細地分析其中的所有關鍵細節。這些關鍵點包括: 事件觸發接口和對應的ChannelHandler處理方法。 inbound事件的傳遞。 outbound事件的傳 閱讀全文
posted @ 2019-01-08 15:45 自帶buff 閱讀 (195) 評論 (0) 編輯

2019年1月2日

摘要:io.netty.channel.DefaultChannelPipeline implements ChannelPipleline DefaultChannelPiple給出了ChannelPipleline的默認實現。ChannelPipleline是一個雙向鏈表,本章的內容是分析默認實現中雙 閱讀全文
posted @ 2019-01-02 15:46 自帶buff 閱讀 (162) 評論 (0) 編輯

導航

統計

七乐彩2011年走势图南方双彩