使用O_DIRECT打开文件后,对该文件的写操作可以批量发送吗

小表弟皮卡丘 2015-12-21 05:13:59
使用open打开设备文件时采用O_DIRECT标志来绕过内存cache,同时使用pwrite往该设备文件里发送写操作,那么问题来了:如果我在同一时刻发送N个写请求,且都是随机的目标地址,那么这些写请求下发到该文件所在的设备上的顺序是批量并行还是一个执行完再发送下一个呢?
...全文
130 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
小表弟皮卡丘 2015-12-22
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
你可以使用多进程并发。
我来试试,谢谢你
赵4老师 2015-12-22
  • 打赏
  • 举报
回复
你可以使用多进程并发。
赵4老师 2015-12-22
  • 打赏
  • 举报
回复
在文件大小相同的前提下: 读刚读过的文件比头次读没读过的文件快 读转速快的硬盘上的文件比读转速慢的硬盘上的文件快 读没有磁盘碎片的文件比读有磁盘碎片的文件快 读文件不处理比边读边处理快 单线程从头到尾一次读文件比多线程分别读文件各部分快(非固态硬盘上) 读固态硬盘上的文件比读普通硬盘上的文件快 写文件类似。
小表弟皮卡丘 2015-12-22
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
一个执行完再发送下一个,我猜。
那么如果我想用O_DIRECT来绕过缓冲区,同时希望请求可以批量发送,有这样的方式吗?求指教啊
赵4老师 2015-12-21
  • 打赏
  • 举报
回复
一个执行完再发送下一个,我猜。

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧