C和C 中的代码优化
code optimization in C and C++
本文关键字:代码优化 更新时间:2023-10-16
以下两个代码段之间是否有任何优化?
案例1:
int func()
{
int a = 10;
return a;
}
第一种情况将值分配给函数中的变量,然后返回该变量。
情况2:
int func()
{
return 10;
}
第二个功能只是直接返回值。
另外,哪个更快?
这两个功能都将与任何一半的编译器一起产生相同的机器代码。自1980年代以来,编译器能够进行优化本地临时变量。
这就是为什么使用局部变量提高复杂表达式的可读性是一个好主意的原因。在您的情况下,本地变量只是多余的。
启用了-O1
(或更高(开关,两个片段都会产生相同的组件,
func():
mov eax, 10
ret
因此,在性能方面,两个片段都是相同的。
任何明智的编译器都应在这两种情况下构建基本相同的代码。
对于诸如int
之类的简单类型,几乎可以肯定没有任何类型的性能区别。正如其他人指出的那样,汇编程序是相同的。
对于C 中的复杂类型,答案更加细微,并且可以取决于复制elision和Move语义的使用。这是值得考虑的,尤其是在实施几乎任何类型的模板时。
。(说(std::vector<>
的良好实现非常小心,以不创建需要分配或移动的不必要的副本。
相关文章:
- C和C 中的代码优化
- 使用清理代码优化多个出口点
- 在 c++ 中从 txt 文件中提取条目的代码优化问题
- 为什么传递值参数经常使编译器更容易进行代码优化
- 来自MATLAB的代码优化直方图C
- C - 代码优化
- 代码优化子集总和
- 在代码优化过程中,C++11编译器是否会在可能的情况下将局部变量转换为右值
- C++-筛选Atkin代码优化
- 协议缓冲区 GetRepeatedField (反射) 代码优化
- C++代码优化
- 编译和代码优化
- C++ ARM 设备上代码优化的提示
- 我是否应该将 const 用于局部变量以获得更好的代码优化
- 用于并行计算的C++代码优化示例
- gcc/C++:如果CPU负载很低,那么代码优化用处不大,这是真的
- 反转每个单词在一个句子中使用c++需要代码优化我的代码片段
- 是我的编译器将适当的代码优化为无用的崩溃代码
- Arduino代码优化的多路复用LED矩阵
- 在代码优化中使用new运算符是否值得?