内联函数的一个小问题,请教中...

mdc630 2008-02-10 02:00:20
VC环境下,一个内联函数性能测试的小程序如下:

#include<iostream>
#include<ctime>
using namespace std;
//----------------------------------
int calc1(int a, int b){
return a+b;
}//---------------------------------
inline int calc2(int a, int b){
return a+b;
}//---------------------------------
int main(){
int x[1000], y[1000], z[1000];
clock_t t = clock();
for(int i=0; i<1000; ++i)
for(int j=0; j<1000; ++j)
for(int k=0; k<1000; ++k)
z[i] = calc1(x[j], y[k]);
cout <<"Not using inline: " <<(clock()-t)/CLK_TCK <<" seconds\n";

t = clock();
for(int m=0; m<1000; ++m)
for(int n=0; n<1000; ++n)
for(int p=0; p<1000; ++p)
z[m] = calc2(x[n], y[p]);
cout <<" Using inline: " <<(clock()-t)/CLK_TCK <<" seconds\n";
return 0;
}//=================================

期望的输出:

Not using inline: 8.281 seconds
Using inline: 2.437 seconds

可是运行后虽然是 0 errors,0 warnings.
但是结果却是整个一个DOS黑屏,什么结果都没有!!!
问题出在什么地方了呢?请教中...
...全文
109 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
visame 2008-02-10
  • 打赏
  • 举报
回复
同意楼上几位。看看你的CPU是不是100%阿(WinXP下的查看方法为:Ctrl+Alt+Del),正在运行呢。等等就有结果了。
mdc630 2008-02-10
  • 打赏
  • 举报
回复
yriio说得对,我多等了一会儿,CPU就告诉我了答案啦.
Not using inline: 8.281 seconds
Using inline: 2.437 seconds
10e9是够大的工作量啦,让CPU老兄受累了!不过我觉得本子配置可以的嘛,不会累到它的哦.而且数值太小的话,也显示不出内联函数的优越性能的嘛!:-)下调了3个数量级之后,显示:
Not using inline: 0 seconds
Using inline: 0 seconds
没效果嘛.
结贴,给分.

yriio 2008-02-10
  • 打赏
  • 举报
回复
多等一会嘛。。。年轻人 要有耐心。。。。
tangshuiling 2008-02-10
  • 打赏
  • 举报
回复
1000*1000*1000的循环你想累死CPU?
我啃 2008-02-10
  • 打赏
  • 举报
回复
数值调小些~

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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