日期:2011-03-22 13:56:00 来源:本站整理
类模拟的性能解析[VC/C++编程]
本文“类模拟的性能解析[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
类模拟中利用了大量的函数指针,构造体等等,有必须对此举行性能解析,以便察看这样的构造对程序的整体性能有什么程度的影响.
1.函数调用的开销
#define COUNTER XX
void testfunc()
{
int i,k=0;
for(i=0;i<YY;i )
}
在测试程序里面,我们利用的是一个测试函数,函数体内部可以通过改变YY的值来改变函数的耗时.测试比较是 循环调用XX次函数,和循环XX次函数内部的YY循环.
后果发现,在YY充足小,X充足大的情形下,函数调用耗时成为了主要缘由.所以当一个“简单”功效需求“反复”调用的时刻,将它编写为函数将会对性能有影响.这个时刻可以利用宏,大概inline关键字.
但是,实际上我设置XX=10000000(1千万)的时刻,才呈现ms级别的耗时,关于非及时操作(UI等等),即便是很慢的cpu(嵌入式10M级别的),也只会在XX=10万的时刻呈现短暂的函数调用耗时,所以实际上这个是可以忽视的.
2.普通函数调用和函数指针调用的开销
void (*tf)();
tf=testfunc;
测试程序改正成一个利用函数调用,一个利用函数指针调用.测试发现对时间基本没有什么影响.(在第一次编写的时刻,发目前函数调用呈现耗时的情形下(XX=1亿),函数指针的调用要慢(release版本),调用耗时350:500.后来才发现这个影响是由于将变量申请为全局的缘由,全局变量的拜候要比部分变量慢很多).
3.函数指针和指针构造拜候的开销
suct a {
void (*tf)();
}
测试程序改正成利用构造的函数指针,测试发现对时间基本没有什么影响.其实利用构造并不会产生影响,因为构造的拜候是固定偏移量的.所以构造变量的拜候和普通变量的拜候关于机械码来说是一样的.
以上是“类模拟的性能解析[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
- ·上一篇文章:C++/CLI中实现singleton情势
- ·下一篇文章:类模拟及多态、担当
- ·中查找“类模拟的性能解析”更多相关内容
- ·中查找“类模拟的性能解析”更多相关内容
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论