耐心是一切聰明才智的基礎(chǔ)昆婿。
零拷貝
兩者的寫入都是寫入內(nèi)存,可以調(diào)用force方法強(qiáng)刷到硬盤。
-
mmap
- 3次copy 4次上下文切換
- java 對應(yīng)
MappedByteBuffer
方法
-
sendfile
- 3次copy 3次上下文切換
-
linux2.4
2次copy 3次上下文切換 - java對應(yīng)
transferTo
方法
自己試了試:
- 復(fù)制s.mkv文件 文件大小2m
stream
復(fù)制文件,耗時: 10144
buffer+stream
復(fù)制文件疚膊,耗時: 51
mmapCopy
復(fù)制文件,耗時: 22
transferTo
復(fù)制文件虾标,耗時: 5
clone
A c = a.clone()
是拷貝寓盗,復(fù)制一份出來,對象就是引用地址璧函。
需要里面引用的對象也實(shí)現(xiàn)clone
接口 才能深拷貝
參考:
http://www.reibang.com/p/0c8bfde432a0
https://zhuanlan.zhihu.com/p/78869158