开发者社区> 问答> 正文

请教个 io的问题

请教个 io的问题

FileOutputStream out = new FileOutputStream("路径"); out.write(buffer); 对于这样的代码,自己认为buffer是在进程的用户空间内,整个代码的数据流转是 数据从进程的用户空间拷贝到操作系统的页缓存之中。 使用mmap进行文件操作,byte[] buffer = new byte[1024]; FileOutputStream out = new FileOutputStream("路径"); MappedByteBuffer map = out.getChannel().map(FileChannel.MapMode.READ_WRITE, 0, 1024); 将buffer之中的数据写入到map之中,死来想去,也觉得是数据从用户空间拷贝到操作系统的页缓存。好像没感受到mmap快的地方。

展开
收起
aoxunb4t7tn3w 2022-05-20 18:19:03 511 0
1 条回答
写回答
取消 提交回答
  • 一般情况mmap都会要更快一点 毕竟少了一次拷贝 连续的小文件就不要用mmap了 浪费内存

    2022-05-20 19:16:07
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
多IO线程优化版 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载