怎样提高读取文件的速度?
来源:互联网 发布:机器人编程实训报告 编辑:程序博客网 时间:2024/05/04 10:00
有很多文本文件,每个记录一行。在读取文件时怎样做才能提高读取文本文件的速度呢?
个人目前只是想到:
1。read时读到大缓冲区,减少io次数。
2。起多个线程,分段读取。能否实现多个线程读时线性提高速度呢?我试了一下,不是很理想。我的做法是,多个线程,先算每个线程读取多少行,读取的其实位置。然后在线程里打开文件读取。但是没有线性提高速度,反而线程多时速度会慢下来。
希望高手们指点,提高好的方法来提高读取文件的速度。
---------------------------------------------------------------
你可以考虑建立文件索引的办法来加快检索的速度,例如:
主文件:
......................................................
平时搜索的条件入口对应的位置:
↑ ↑ ↑ ↑
条件1 条件2 ....
索引文件
条件1:偏移量
条件1:偏移量
.....
每次根据条件,取出文件偏移量,直接定位,应该能快点
当然,你也可以建立多重索引来,符合各种速度要求
---------------------------------------------------------------
把整个文件读入内存,在内存中进行操作。
如果整个文件过大,分成合适的几部分。
---------------------------------------------------------------
用
fopen
fread
fwrite
fclose
可以提高系统磁盘读写效率
---------------------------------------------------------------
mmap --文件映射
#man mmap
---------------------------------------------------------------
我的看法:
1、读取时Buffer的大小最好为512B的整数倍,因为磁盘一个块的大小就是512B,这样传输的效率最高。
2、Buffer的大小可以适当增大,最好使用stdio.h中定义的BUFSIZ,这是根据系统的不同情况所决定的。适当增大Buffer可以在程序运行的过程中减少用户态和核心态切换的次数,从而使系统开销减小。
- 怎样提高读取文件的速度?
- BufferedInputStream如何提高读取文件速度
- 怎样提高电脑的运行速度
- 怎样提高https站点的访问速度
- 怎样提高火狐浏览器的速度?
- 怎样提高电脑的运行速度
- 怎样提高https站点的访问速度
- 怎样提高网络速度
- 索引是怎样提高查询的速度的,原理是什么?
- 怎样提高网站的访问速度的诀窍
- 怎样有效提高网站中网页的浏览速度
- 怎样有效提高网站中网页的浏览速度
- 怎样有效提高网站中网页的浏览速度
- 怎样提高Windows7的运行速度【选至中国商务部】
- 为了提高数据库的处理速度,怎样设计数据库?
- 为了提高数据库的处理速度,怎样设计数据库?
- 请问如何提高文件的读写速度
- ASP.NET缓存Cache的应用-提高数据库读取速度
- LINUX 下VI设置
- perl函数
- 利用__FILE__, __LINE__, __FUNCTION__跟踪调试程序
- 为C# Windows服务添加安装程序
- Extjs getEl() 功能
- 怎样提高读取文件的速度?
- 通过SQL存储过程删除过期的数据库Bak备份文件
- 求职经验
- Java SE -- Static Inner
- 字符串截取
- select 可移动表单
- struts2中web.xml配置struts.xml文件
- operator new 和new operator
- NORflash和NANDflash区别