C++代码优化(2),第1张

C++代码优化(2),第2张

尽可能使用常量。

尽可能使用常量。C++标准规定,如果没有获得const声明的对象的地址,允许编译器不为其分配存储空。这样可以让代码更高效,生成更好的代码。


提高循环的性能。

为了提高循环的性能,减少冗余的常数计算(例如,不随循环变化的计算)是非常有用的。

错误代码(包括for()中的不变if())推荐代码

对于(我...
{
if(constant 0
{
dowork 0(I;//假设constant 0
}
else
{
dowork 1(I;//假设constant 0
}
}
if(constant 0
{
for(I...
{
dowork 0(I;
}
}
else
{
for(I...
{
dowork 1(I;
}
}

如果已经知道If()的值,可以避免重复计算。虽然可以简单地预测坏代码中的分支,但推荐的代码可以减少对分支预测的依赖,因为分支在进入循环之前就已经确定了。将局部函数声明为静态的。

如果一个函数没有在实现它的文件之外使用,那么就声明它是静态的,以强制使用内部连接。否则,该功能将被默认定义为外部连接。这可能会影响某些编译器的优化,例如自动内联。

考虑动态内存分配。

动态内存分配(“在C++中;新”;)可能总是返回长基本类型的对齐指针(四字对齐)。但是如果不能保证对齐,那么使用下面的代码来实现四字对齐。这段代码假设指针可以映射到long。

例子

double* p = (double*)新字节[sizeof(double)* number _ of _ doubles+7L];
double * NP =(double *)((long(p)+7L)&;–8L);

现在,你可以用np代替P来访问数据。注意:释放存储空房间时还是要用delete p。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » C++代码优化(2)

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情