探寻C++快的读取文件的方案
作者:awyd234 发布时间:[ 2016/10/18 9:55:57 ] 推荐标签:.NET C++
经测试,运行时间缩短到了0.25秒,效率继续提高了14%。到此为止我已经没有更好的方法继续提高读文件的速度了。回头测一下Pascal的速度如何?结果令人大跌眼镜,居然运行了2.16秒之多。程序如下:
const
MAXN = 10000000;
var
numbers :array[0..MAXN] of longint;
i :longint;
begin
assign(input,'data.txt');
reset(input);
for i:=0 to MAXN do
read(numbers[i]);
end.
为确保准确性,我又换到Windows平台上测试了一下。结果如下表:
方法/平台/时间(秒) Linux gcc Windows mingw Windows VC2008 scanf 2.010 3.704 3.425 cin 6.380 64.003 19.208 cin取消同步 2.050 6.004 19.616 fread 0.290 0.241 0.304 read 0.290 0.398 不支持 mmap 0.250 不支持 不支持 Pascal read 2.160 4.668
从上面可以看出几个问题
Linux平台上运行程序普遍比Windows上快。Windows下VC编译的程序一般运行比MINGW(MINimal Gcc for Windows)快。VC对cin取消同步与否不敏感,前后效率相同。反过来MINGW则非常敏感,前后效率相差8倍。read本是linux系统函数,MINGW可能采用了某种模拟方式,read比fread更慢。Pascal程序运行速度实在令人不敢恭维。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11热门文章
常见的移动App Bug??崩溃的测试用例设计如何用Jmeter做压力测试QC使用说明APP压力测试入门教程移动app测试中的主要问题jenkins+testng+ant+webdriver持续集成测试使用JMeter进行HTTP负载测试Selenium 2.0 WebDriver 使用指南