我在上一个项目中主要使用gcc,今天我决定对不同编译器的结果进行基准测试.
我使用了与Visual Studio 2010和英特尔C++相同的gcc 4.5,MSVC源代码.该程序从文本文件中获取输入,进行大量字符串操作并将输出写入另一个文本文件.
我只计算时间o
编辑:基准测试:
我只计算执行算法的时间,而不是文件io.基本上我放了
Run Code Online (Sandbox Code Playgroud)
在功能的开头和
clock_t clock0;
double z;
clock0 = clock();
之后.
double clock1=(clock() - clock0) / (double) CLOCKS_PER_SEC;
它从一个小文件(大约200行)开始,几乎没有差异(大约<0.15秒).使用4K行文件,MSVC的输出工作时间为1.23秒,而gcc的输出为0.1.
最后我测试了60K行文件:
Run Code Online (Sandbox Code Playgroud)
(program compiled with ) Intel compiler ran for 6.7 sec and with gcc : 1 sec.
现在我只是想知道为什么会有这样的差异(没有优化标志)以及可能是什么原因.(我使用c ++ 0x标准 - 但显然英特尔编译器支持它.)我不确定是否有这样的事实我的代码只用一个编译器编译成快速二进制文件并不令人担忧
编辑2:
我没有在MSVC或Intel的调试模式下编译它