NIO中文件映射和零拷贝
Zero-Copy
DMA从拷贝至内核缓冲区
cpu将数据从内核缓冲区拷贝至内核空间(socket缓冲区)
DMA将数据从内核拷贝至协议引擎
这三个过程中共发生2次上下文切换,分别为发起读取文件和发送数据
零拷贝-mmap 对应到java中
为MappedByteBuffer //文件内存映射
数据不会复制到用户空间,只在内核空间,与sendfile类似,但是应用程序可以直接操作该内存。
NIO
NIO中文件映射和零拷贝
Zero-Copy
DMA从拷贝至内核缓冲区
cpu将数据从内核缓冲区拷贝至内核空间(socket缓冲区)
DMA将数据从内核拷贝至协议引擎
这三个过程中共发生2次上下文切换,分别为发起读取文件和发送数据
零拷贝-mmap 对应到java中
为MappedByteBuffer //文件内存映射
数据不会复制到用户空间,只在内核空间,与sendfile类似,但是应用程序可以直接操作该内存。
NIO