版块
论坛
喜欢
话题
应用
搜索
登录
注册
leehan的个人空间
访问量
0
新鲜事
帖子
资料
http://bbs3.driverdevelop.com/index.php?m=space&uid=13561
纯技术问题
有一个程序,需要同时打开多个大文件进行读操作,比如32个40M的文件。分别读一部分内容后输出到指定的设备,设备在中断处理程序中将内容送出。问题:因为中断教快,不能在指定的时间内读取文件,导致设备工作不流畅。是否有好的处理文件的方法,能够快速读取数据?
回复
(
6
)
2001-12-29 12:44
来自版块 -
内核编程
◆
◆
表情
告诉我的粉丝
提 交
leehan
:
其实我的应用中,文件访问是顺序的,而且每次读取的长度是一样的,在卡中对应每个通道有两块映射的内存区域与之对应,其中一块用来做cache,但还是有我所说的问题。 上层程序是用普通的文件操作做的,我希望其它的方式会对性能有所提高。
(2001-12-31 09:30)
回复
lu0
:
无论哪种方法. 最终都向FSD请求读文件. 最快的应该是自己预先CACHE一段内容. 等中断来了直接从内存TRANSFER. 由于东西太大,不能全部CACHE下来. 这就要靠你的预测算法了.
(2001-12-30 19:31)
回复
leehan
:
我用VC写的程序,好象没有Alert IO。 想用内存映像试一试。 谢谢!
(2001-12-29 17:03)
回复
KDriver
:
Alert IO呢,这个支持吗。 类似于完成端口,但是这个东西是使用一个CallBack函数来做,不用线程,效率相对完成端口要低,但是也是第二好的方法了 (再不支持,就没有办法了) 另外,在这里胡说一句,win98是桌面系统,你不能对他期望太高,像你的这种要求性...
(2001-12-29 16:46)
回复
leehan
:
谢谢! 可我在98下,98对完成端口不支持。
(2001-12-29 16:40)
回复
KDriver
:
给你一点提示,自己看 文件映射(File Mapping) 完成端口(Completion Port) 看书 《windows高级编程指南》 第三版 清华大学出版社 作者 : Jeffery Richer
(2001-12-29 13:19)
回复
leehan
加关注
写私信
0
关注
0
粉丝
42
帖子
返回顶部