gpt4 book ai didi

c - 这样的优化有意义吗?

转载 作者:行者123 更新时间:2023-12-03 17:05:59 25 4
gpt4 key购买 nike

你有两个数组和一个计算它们之间差异的函数:

for( i = 0; i < len; ++i ) { 
int value1 = vector1[i];
int value2 = vector2[i];
if( value1 != value2 ) ++num_differences;
}

由于分支会降低性能,因此可以将其优化为:

for( i = 0; i < len; ++i ) {
num_differences += !!(vector1[i] != vector2[i])
}
// !!(..) is to be sure that the result is boolean 0 or 1

所以没有 if 子句。但这实际上有意义吗?由于 GCC(和其他编译器)如此智能,进行此类优化是否有意义?

最佳答案

简短的回答是:“相信你的编译器”。

一般来说,除非您处理的是非常庞大的数据集,否则您不会从这样的优化中获益太多。即便如此,您确实需要对代码进行基准测试以查看是否有任何改进。

关于c - 这样的优化有意义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9563488/

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