当前位置:七道奇文章资讯编程技术VC/C++编程
日期: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好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .