gpt4 book ai didi

c - 优化速度 - C 中的 4 维数组查找

转载 作者:太空狗 更新时间:2023-10-29 14:49:38 25 4
gpt4 key购买 nike

我有一个适应度函数,它根据 4D 数组中的数据对 int 数组中的值进行评分。分析器说这个函数使用了 80% 的 CPU 时间(它需要被调用几百万次)。我似乎无法进一步优化它(如果可能的话)。这是函数:

unsigned int lookup_array[26][26][26][26]; /* lookup_array is a global variable */

unsigned int get_i_score(unsigned int *input) {
register unsigned int i, score = 0;

for(i = len - 3; i--; )
score += lookup_array[input[i]][input[i + 1]][input[i + 2]][input[i + 3]];

return(score)
}

我尝试将数组展平为单一维度,但性能没有任何改善。这是在 IA32 CPU 上运行的。任何特定于 CPU 的优化也很有帮助。谢谢

最佳答案

数组项的范围是多少?如果您可以将数组的基本类型更改为 unsigned short 或 unsigned char,您可能会得到更少的缓存未命中,因为数组的较大部分适合缓存。

关于c - 优化速度 - C 中的 4 维数组查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2439975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com