C++中返回前赋值和直接返回有性能差异吗?
Is there a performance difference between assigning before returning and directly returning in C++?
下面这两个函数是否有性能差异,还是编译器处理的一样?
double f1(double a, double b) {
return a + b;
}
double f2(double a, double b) {
double sum = a + b;
return sum;
}
谢谢。
Is there a performance difference between the two following functions
一个函数包含两个语句,另一个函数包含一个语句。
or is it handled by the compiler the same?
他们可以。这两个函数具有相同的可观察行为,因此它们可能会生成相同的程序。
从实用的角度来看,了解编译器实际对这样一段代码做了什么很有帮助,请参阅 this godbolt。
事实证明,从“-O1”优化级别开始,例如 g++ 和 clang 创建完全相同的汇编程序指令:
addsd xmm0, xmm1
ret
这意味着性能当然也会完全相同。
下面这两个函数是否有性能差异,还是编译器处理的一样?
double f1(double a, double b) {
return a + b;
}
double f2(double a, double b) {
double sum = a + b;
return sum;
}
谢谢。
Is there a performance difference between the two following functions
一个函数包含两个语句,另一个函数包含一个语句。
or is it handled by the compiler the same?
他们可以。这两个函数具有相同的可观察行为,因此它们可能会生成相同的程序。
从实用的角度来看,了解编译器实际对这样一段代码做了什么很有帮助,请参阅 this godbolt。
事实证明,从“-O1”优化级别开始,例如 g++ 和 clang 创建完全相同的汇编程序指令:
addsd xmm0, xmm1
ret
这意味着性能当然也会完全相同。