社区
C++ 语言
帖子详情
现有300万行的日志文件,每读1万行约用时0.6秒,现想加快读取速度,怎么改进呢?
shdiao
2006-09-14 11:16:00
我用 ifstream 的 getline 函数按行读入,每读入1万行集中处理一次,感觉读入数据用的时间太长,用什么方案能加快读取速度呢? 方案?函数?
日志的情况:
以行为基本单位,每行结尾一个 '\n' 字符
每行长度不定,短的 30 个字节,长的 600 个字节, 平均每行 70 到 100 个字节左右
...全文
945
28
打赏
收藏
现有300万行的日志文件,每读1万行约用时0.6秒,现想加快读取速度,怎么改进呢?
我用 ifstream 的 getline 函数按行读入,每读入1万行集中处理一次,感觉读入数据用的时间太长,用什么方案能加快读取速度呢? 方案?函数? 日志的情况: 以行为基本单位,每行结尾一个 '\n' 字符 每行长度不定,短的 30 个字节,长的 600 个字节, 平均每行 70 到 100 个字节左右
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
28 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
突击召唤师
2006-09-19
打赏
举报
回复
第一反应就是file-mapping :) 别读过了
shdiao
2006-09-19
打赏
举报
回复
问题解决了,感谢各位回贴的朋友!!
最后用的 file-mapping ,效果比较理想 :)
:)
MaxXu0905
2006-09-18
打赏
举报
回复
对文件映射,文件的大小有个最大值的。
Macor
2006-09-18
打赏
举报
回复
file-mapping
记下~~
piggy33
2006-09-16
打赏
举报
回复
300万行。` 昏了`` 我编一两年了好像也没编到过那么多吧`
厉害。支持一下!
Wolf0403
2006-09-16
打赏
举报
回复
自然要计算最后一块的长度的。。。
shdiao
2006-09-16
打赏
举报
回复
楼上看错了 :)
300万行是 日志,不是程序 :)
kangji
2006-09-16
打赏
举报
回复
楼主最终找到了解决方法
liu584
2006-09-16
打赏
举报
回复
写了300W行代码的人就像
一个乞丐说“都我乞讨了一辈子了”
一样无聊
lddLinan
2006-09-16
打赏
举报
回复
娃哈哈哈~
shdiao
2006-09-15
打赏
举报
回复
我是用 ifstream.getline() 函数读的,读一万行,存在一个 char 的大数组中
但是感觉使用ifstream.getline()函数,IO 次数太多,影响速度
现在既想减少IO次数,又想保证以行为基本单位
shdiao
2006-09-15
打赏
举报
回复
感谢各位回帖指教
尝试使用了 内存映射文件 file-mapping ,速度提升了一个数量级
不过出现了一个新的小问题,映射到文件结尾时,总是出现映射出错,如何控制不映射到文件外面呢?
elssann
2006-09-15
打赏
举报
回复
内存映射文件啊.
du51
2006-09-15
打赏
举报
回复
我觉得能不能用istreambuf试试.减少很多不必要的测试.
jixingzhong
2006-09-15
打赏
举报
回复
楼主你可以从另外的方面考虑,
比如你的文件处理所做的工作,
必须是每个记录进行处理么?
是否可以设计一些算法(比如利用索引),
去掉一些不必要的 I/O 操作...
jixingzhong
2006-09-15
打赏
举报
回复
外部读取,
是没有办法滴 ...
你可以通过加大一次性读取的数量,
减少读取的次数,
但是,
一般来讲,
这个数量有一个最佳值,
太大了反而不好 ...
Jiessie
2006-09-15
打赏
举报
回复
io,file-mapping 会很慢,因为cache 系统不会一次给你读这么多出来。
Jiessie
2006-09-15
打赏
举报
回复
分配10M的memory,
然后一次读10M(20M或30M也行),直接处理这10M,不要按你的1万行为单位。这应该是最好的方案了。
OOPhaisky
2006-09-15
打赏
举报
回复
支持一下。
sinall
2006-09-15
打赏
举报
回复
支持楼上各位,瓶颈在io,file-mapping办法值得一试。
加载更多回复(8)
安全行
约
车原型.rp
安全行
约
车原型.rp
宁波市二手车经纪行业协会行规行
约
.docx
宁波市二手车经纪行业协会行规行
约
.docx
信用社年度行规行
约
贯彻落实情况自查报告.pdf
信用社年度行规行
约
贯彻落实情况自查报告.pdf
xx关于行规行
约
贯彻落实情况自查报告知识.pdf
xx关于行规行
约
贯彻落实情况自查报告知识.pdf
XX区美容美发保健化妆品行规行
约
准入制度(制度范本、DOC格式).doc
XX区美容美发保健化妆品行规行
约
准入制度(制度范本、DOC格式).doc
C++ 语言
64,282
社区成员
250,470
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章