免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3178 | 回复: 10
打印 上一主题 下一主题

问下大家,谁知道linux2.6 的dma设置,文件读写编程 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-05 17:20 |只看该作者 |倒序浏览
如题
我想知道dma的块大小在哪儿设置
还有,我有一个大文件要读入内存处理
我如何确定一次读多大的块,可以效率最高?
期待高手,呵呵

[ 本帖最后由 astezheng 于 2009-4-6 18:27 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-04-06 18:28 |只看该作者

回复 #1 astezheng 的帖子

自己顶一下吧

论坛徽章:
0
3 [报告]
发表于 2009-04-07 09:31 |只看该作者
DMA那个不知道

每次读取操作的字节一般设置为块大小的整数倍,这个倍数又是2的N次方,例如1,2,4,8倍就是很不错的选择

再大了效率反而会下降

你可以自己写程序,用不同的大小进行测试,不过要避免测试受到操作系统的缓存机制的影响

论坛徽章:
0
4 [报告]
发表于 2009-04-07 10:26 |只看该作者

回复 #3 雨过白鹭洲 的帖子

谢谢了啊,不过我认为这个办法并不是终极的办法
实际读块的大小是512的整数倍

其实我想找一个除了测试以外的办法,有时测试并不准

论坛徽章:
0
5 [报告]
发表于 2009-04-07 11:12 |只看该作者
惯例就不错

我推荐你用4096或8192

论坛徽章:
0
6 [报告]
发表于 2009-04-07 11:17 |只看该作者
你这是mmap,跟DMA没关系

论坛徽章:
0
7 [报告]
发表于 2009-04-07 11:44 |只看该作者

回复 #6 albcamus 的帖子

现在我不管内核拷贝,我只求IO的效率最高

读盘的时候,dma开启的话,肯定时通过dma读的啊

论坛徽章:
0
8 [报告]
发表于 2009-04-07 13:39 |只看该作者

回复 #7 astezheng 的帖子

自己再顶一下

论坛徽章:
0
9 [报告]
发表于 2009-04-07 16:37 |只看该作者
弱弱的问下,你要读的文件有多大呢?
为什么不用内存映射文件,让操作系统选择高效的方式将文件读入内存不更好么?

论坛徽章:
0
10 [报告]
发表于 2009-04-07 18:17 |只看该作者
原帖由 leejun527 于 2009-4-7 16:37 发表
弱弱的问下,你要读的文件有多大呢?
为什么不用内存映射文件,让操作系统选择高效的方式将文件读入内存不更好么?


谢谢你的回复
是这样的,我在考虑非常大的文件,不是常规尺寸的
比如自己每次读一块,然后分析,然后定时把分析结果在存入文件
在这个过程中,IO次数越少越好,这里面肯定有个合适的块值,小于这个块值,IO次数增多,大于的话,多余部分需要另一次IO,并且我的buffer也得跟着变大

我对内存映射文件的理解就是,通过内存操作的方式去操作文件空间,貌似解决不了我的问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP