mmap和mmap64

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
mmap和sendfile是两种在文件处理中常用的技术。 mmap是一种将文件映射到进程的地址空间的方法,它通过建立文件磁盘地址和进程虚拟地址空间的对应关系,实现了文件的访问。在使用mmap时,并没有分配和映射到具体的物理内存空间,而是在第一次加载文件时,通过MMU将虚拟地址转换为物理地址,并将文件加载到物理地址中的内核空间的Page Cache中。这样,进程可以直接通过访问内存的方式来读写文件,而不需要进行繁琐的文件IO操作。\[1\] sendfile是一种在网络编程中常用的方法,它可以将一个文件的内容直接发送到网络连接中,而无需将文件内容先拷贝到用户缓冲区再发送。sendfile利用了操作系统的DMA引擎,将磁盘文件数据直接映射到内核缓冲区,并与用户缓冲区共享同一块映射数据。这样,在建立映射后,就可以直接从内核缓冲区发送数据,减少了一次拷贝操作,提高了性能。总共需要4次切换和3次拷贝。\[3\] 所以,mmap和sendfile都是在文件处理中提高性能的技术,但它们的应用场景和使用方式有所不同。mmap适用于需要频繁读写文件的场景,而sendfile适用于需要将文件内容直接发送到网络连接的场景。 #### 引用[.reference_title] - *1* [Java 两种zero-copy零拷贝技术mmap和sendfile的介绍](https://blog.csdn.net/djdjdxieuej/article/details/128683165)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [零拷贝技术:mmap和sendfile](https://blog.csdn.net/lonelymanontheway/article/details/105888792)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值