Ear*_*Sky 10 c c++ optimization
我这个问题已经很久了,但是却不知道在哪里看。如果某个操作多次编写,编译器会简化它还是运行完全相同的操作并获得完全相同的答案?
例如,在下文(i%3)*10中,多次重复类似c的伪代码。
for(int i=0; i<100; i++) {
array[(i%3)*10] = someFunction((i%3)*10);
int otherVar = (i%3)*10 + array[(i%3)*10];
int lastVar = (i%3)*10 - otherVar;
anotherFunction(lastVar);
}
Run Code Online (Sandbox Code Playgroud)
我了解变量在视觉上会更好,但会更快吗?是(i%3)*10计算每循环5次?
在某些情况下,我不知道使用变量还是仅保留原始操作更快。
编辑:在胜利10上使用gcc(MinGW.org GCC-8.2.0-3)8.2.0
完成哪些优化取决于编译器,您指定的编译器优化标志和体系结构。
这是您的示例的一些可能的优化:
(i % 3) * 10每次循环迭代仅执行一次。关于您对视觉清晰度与优化的关注:在处理像您这样的“本地情况”时,您应该关注代码的清晰度。
优化收益通常要更高一些;例如在您使用的算法中。
关于优化有很多要说的。以上只是一些开幕词。您对事物的工作方式很感兴趣,因为这对一个好的(C / C ++)程序员来说非常重要。
| 归档时间: |
|
| 查看次数: |
227 次 |
| 最近记录: |