gpt4 book ai didi

C++ 返回性能

转载 作者:太空狗 更新时间:2023-10-29 19:51:35 24 4
gpt4 key购买 nike

我有一个关于性能的问题。我认为这也适用于其他语言(不仅是 C++)。

假设我有这个功能:

int addNumber(int a, int b){
int result = a + b;
return result;
}

如果我这样写上面的代码,性能会有提升吗?

int addNumber(int a, int b){
return a + b;
}

我有这个问题是因为第二个函数没有声明第三个变量。但是编译器会在第一段代码中检测到这一点吗?

最佳答案

要回答这个问题,您可以 look at the generated assembler code .使用 -O2,x86-64 gcc 6.2 为这两种方法生成完全相同的代码:

addNumber(int, int):
lea eax, [rdi+rsi]
ret
addNumber2(int, int):
lea eax, [rdi+rsi]
ret

仅在未启用优化的情况下,there is a difference :

addNumber(int, int):
push rbp
mov rbp, rsp
mov DWORD PTR [rbp-20], edi
mov DWORD PTR [rbp-24], esi
mov edx, DWORD PTR [rbp-20]
mov eax, DWORD PTR [rbp-24]
add eax, edx
mov DWORD PTR [rbp-4], eax
mov eax, DWORD PTR [rbp-4]
pop rbp
ret
addNumber2(int, int):
push rbp
mov rbp, rsp
mov DWORD PTR [rbp-4], edi
mov DWORD PTR [rbp-8], esi
mov edx, DWORD PTR [rbp-4]
mov eax, DWORD PTR [rbp-8]
add eax, edx
pop rbp
ret

但是,没有优化的性能比较是没有意义的

关于C++ 返回性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39938660/

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