例如,我想使用数组SQRTi创建一个平方根表来优化游戏,但我不知道以下初始化在访问SQRTi值时是否存在性能差异
int SQRT[]={0,1,1,1,2,2,2,2,2,3,3,3,......255,255,255}
int SQRT65536;int main(){ for(int i=0;i<65536;i++){ SQRTi=sqrt(i);}/其他代码返回0;}
if(SQRT[a*
不知怎么的,我发现函数F的存在与否(这对基准测试没有影响)会极大地改变基准测试结果(大约10%)。我做了一些搜索,看看这是如何可能的,并偶然发现了。由于我实现的函数使用SIMD,所以我认为内存对齐可能会产生影响。然而,我从经验中知道,如果在SIMD中使用的变量不对齐,程序就会失败,所以我认为局部变量的对齐会产生影响。要对齐局部变量,我定义了以下未优化的虚拟变量.
int local_var = ..