类模拟中使用了大量指针结构体等等有必须对此进行性能分析以便观察这样结构对整体性能有什么程度影响
1.开销
# COUNTER XX
void testfunc
{
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);
}
测试修改为使用结构指针测试发现对时间基本没有什么影响其实使用结构并不会产生影响结构访问是固定偏移量所以结构变量访问和普通变量访问对于机器码来说是样
最新评论