|
|
1
2
取决于。 如果您在没有启用优化的情况下进行编译,编译器会执行您告诉他的任何操作,并且不会优化循环。如果您在启用优化的情况下进行编译,编译器可以识别您正在做的事情,并跳过整个循环。 我已经在上用gcc编译了您的代码 Compiler Explorer .
没有优化(
的说明
通过优化(
这个
我已经选择了优化级别
有关gcc优化级别的概述,您可以查看 this answer . |
|
|
2
2
“在尝试中学习”。
以下是未优化的情况:
这是通过优化实现的:
对于基本上什么都不做的事情来说,这是一个相当大的区别,所以唯一实际的优化来解释这一点的是去除循环。。。 但是,让我们尝试其他方法:将一行替换为
现在,让我们来看看:
这一次,我们没有显著的差异,因为编译器必须处理
|
|
AstralHex · 矩阵乘法代码工作不正常 11 月前 |
|
|
Giogre · 为包含许多数值字段的简单“struct”重载比较运算符 11 月前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 11 月前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 11 月前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 11 月前 |