探寻C++最快的读取文件的方案std::ios::sync_with_stdio(false) (转)(二)
台/时间(秒)
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程序运行速度实在令人不敢恭维。