记一次源码追踪分析,从Java到JNI,再到JVM的C++:fileChannel.map()为什么快;MappedByteBuffer的map源码及directByteBuffer.putByte
highlight: atelier-cave-darktheme: vue-pro前言在系统IO相关的系统调用有read/write,mmap,sendfile等这些。其中read/write是普通的读写,每次都需要将buffer从用户空间拷贝到内核空间;而mmap使用的是内存映射,会将磁盘文件对应的页映射(拷贝)到内核空间的page cache,并记录到用户进程的页表中,使得用户空间也可以像操作用户空间一样操作该文件的映射,最后再由操作系统来讲该映射(脏页)回写到磁盘;sendfile则.
原创
2022-05-15 21:55:26 ·
910 阅读 ·
2 评论