slice():獨立的readerindex和writeindex索引。複製readerable區域。 不帶參數的 slice 方法等同於 buf.slice(buf.readerIndex(), buf.readableBytes()) 調用, 即返回 buf 中可讀部分的切片. 而 + + slice(int index, int length) 方法相對就比較靈活了, 咱們能夠設置不一樣的參數來獲取到 buf 的不一樣區域的切片.性能
copy():複製一份全新的對象,內容和緩衝區都不是共享的。對象
duplicate():複製當前對象,複製後的對象與前對象共享緩衝區,且維護本身的獨立索引blog
discardReadBuffer() 把已經讀取(下標0~readindex之間)的內容刪除,後面的內容往前面挪動,數據的挪動影響性能。 duplicate()方法,軟拷貝,共享內存,readindex=writeIndex=0 copy() 深拷貝,不共享內存readindex=writeIndex=0 slice() 軟拷貝,將readIndex~writeIndex之間的內容拷貝一份,共享內存,至關於把沒讀的部分引用過來索引