作者lemonsheep (柠檬羊)
看板C_and_CPP
标题[问题] C/C++读档速度
时间Sat Nov 5 10:39:27 2016
开发平台(Platform): (Ex: Win10, Linux, ...)
Code::block
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
GCC
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
想请问一下一个问题 就是在做档案操作的时候一次读入一行会比一次只读一行的某部分来的快吗
例如说档案中的资料是这样的形式 m666 666 3111....(很多组数字)
这样直接用getline一次读一行会比用fin>>m>>666>>666>>3111(分别存在不同变数)快吗?
我感觉直接全部getline进来似乎是有快上一些
但是读进来之後在处理资料的时候 我又使用了stringstream 这样整个处理完的结果好像依然没有比较快
对读档I/O这块非常没有概念 想知道有没有神麽比较快的方式,感谢~
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.113.64.13
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1478313571.A.054.html
1F:推 longlongint: 编译有加 -O2吗 11/05 11:33
2F:→ longlongint: 选 release build 11/05 11:33
3F:→ longlongint: 然後 stringstream 很慢没错 11/05 11:34
4F:→ longlongint: C风格的读档在某些平台上会更快 字串处理可以自己 11/05 11:38
5F:→ longlongint: 写 或用strtok 或 string split 做 但是 我认为改 11/05 11:38
6F:→ longlongint: 用 release build 在大部分情况应该够用了 11/05 11:38
7F:推 james732: 如果档案不是非常巨大,我会一口气全读进来再操作 11/05 11:50
9F:推 Yshuan: 记得fgets是最快 但buffer size必须先估好 11/05 15:44