vc6编译出来的程序效率只有vs2005的1/10

woodforasp 2008-01-31 05:47:52
刚才在c#区发了个帖子说的是测试一个三重循环运行时间时发生的奇事,而我把相同功能的代码在vc6和vc++2005分别编译运行时,也发生了一个在我看来很神奇的事情:vc6编译出来的程序执行时间是vc++2005的10倍之多!
代码如下:
///////////////////////////////////////////
double s1,s2;
int i,j,k;
double x,y,z;
y=1001,z=2001;
s1=GetTickCount();
for(i=0;i<1000;i++)
for(j=0;j<1000;j++)
for(k=0;k<10000;k++)
x=z*i+y*j-y*z+z/y+k;
s2=GetTickCount();
CString str;
str.Format(_T("%lf\n%lf"),x,s2-s1);
AfxMessageBox(str);
///////////////////////////////////////////
就是循环后看下时间而已。都用的release模式,vc6的s2-s1是20xxx,vc++2005的s2-s1才20xx。10倍啊!
难道vc6这么菜?
我的cpu是3800+
是不是我的安装有问题呢?这次我是先装的vs2005,后装的vc6
明天找个没装2005的机器试试
...全文
285 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangjun825 2008-09-01
  • 打赏
  • 举报
回复
将我写的一个复杂的绘图程序在VS2008上编译,的确比在VC6上用intel c++编译出的快。看来VS后续的版本编译出来的程序效率的确提高不少。
lvbinglin 2008-02-10
  • 打赏
  • 举报
回复
vc6
1005997.999001
136046

vc2008
1005997.999001
134532
woodforasp 2008-02-10
  • 打赏
  • 举报
回复
ls的兄弟,vc6和2008的结果差不多吗?是不是debug模式啊?
evvvzt 2008-02-09
  • 打赏
  • 举报
回复

vc6
1005997.999001
17297.000000Press any key to continue

vc2008
1005997.999001
1859.000000请按任意键继续. . .
lookmai 2008-02-03
  • 打赏
  • 举报
回复
2005编译的时候比较智能,而你的计算很有规律。2005编译出来的东西,并没有按你的想法全部计算,有正确的结果就够了。

for(i=0;i <1000;i++)
i++;

还用循环1000次?直接出结果就是了。

楼主,你应该用一些毫没规律可言来运算,再对比下
woodforasp 2008-02-03
  • 打赏
  • 举报
回复
试了试intel c++9
在vc6下提升到5047
在vc2005下反而降低了性能,s2-s1=4096
woodforasp 2008-02-03
  • 打赏
  • 举报
回复
//上面的代码,不论k等于多少,运行的时间基本一样。
这是有规律,还是没规律?

我在顶楼的例子是循环次数多,计算时间多。
这是有规律,还是没规律?
用户 昵称 2008-02-03
  • 打赏
  • 举报
回复
没那么大的差别
lookmai 2008-02-03
  • 打赏
  • 举报
回复
//你说的没有规律的计算是……?
int i,j,k;
k=10000
for(i=0;i <k;i++)
j++;


上面的代码,不论k等于多少,运行的时间基本一样。
lookmai 2008-02-03
  • 打赏
  • 举报
回复
//你说的没有规律的计算是……?
int i,j,k;
k=10000
for(i=0;i <k;i++)
j++;


上面的代码,不论k等于多少,运行的时基本一样。
woodforasp 2008-02-03
  • 打赏
  • 举报
回复
本来还以为c++的标准出来那么多年了,编译器的能力应该差不多才对,现在才发现自己太天真
woodforasp 2008-02-03
  • 打赏
  • 举报
回复
akirya :
没有强大的说法
你可以试试 g++
intel C++
--------------------------------
试验中……


///////////////////////////////////////////////////
lookmai :
2005编译的时候比较智能,而你的计算很有规律。2005编译出来的东西,并没有按你的想法全部计算,有正确的结果就够了。

for(i=0;i <1000;i++)
i++;
还用循环1000次?直接出结果就是了。
楼主,你应该用一些毫没规律可言来运算,再对比下
--------------------------------------------
我现在怀疑是2005对新的cpu支持较好,而vc6不行。当然只是怀疑,没有依据。
你说的没有规律的计算是……?
  • 打赏
  • 举报
回复
没有强大的说法
你可以试试 g++
intel C++
flyli_x 2008-02-01
  • 打赏
  • 举报
回复
有结果了通知我一声哈,我想知道是不是真的^_^
可以到我的波克留言哈,谢谢了^_^
woodforasp 2008-02-01
  • 打赏
  • 举报
回复
刚刚重装系统后测试完成,结果不变,vc2005比vc6快10倍!
所有安装选项都是默认
想当初,发现vc比vb快20倍的时候惊为天人,如今方知没有最快

yasaka :
不至于吧?VC6我没用过。我倒是觉得2005已经够慢的了。
--------------------------------------------
请问s更强大的c++编译器是?

yasaka 2008-02-01
  • 打赏
  • 举报
回复
不至于吧?VC6我没用过。我倒是觉得2005已经够慢的了。

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧