GCC优化步骤

GCC optimization steps

我正在工作或进行性能评估,我遇到了一个问题:当我向代码添加一些指令时,它的执行速度比初始代码快,我认为是由于编译器优化(未指定任何)。

编译器优化是如何工作的?特别是它们是在将 C 转换为汇编代码时执行的,还是在从汇编代码到二进制代码的步骤中执行的? 我想两者都有,但是有可能知道在每个步骤中执行了哪些优化吗?

我查看了汇编,但发现只有细微差别,因此我认为涉及到一些特定于体系结构的优化。

谢谢!

汇编是二进制代码,顺便说一句。大多数优化发生在将高级语言编译为汇编时。奇怪的是你添加了功能并且它变得更快......但是编译器优化有点黑魔法。

您也许能够深入了解它,您可以将您的 C 编译为汇编 (gcc -S) 并查看它对您的版本做了什么...当然请记住并非所有指令都已创建同样,如果您对汇编以及 CPU、总线和内存等如何在低级别工作有所了解,这将对您有更大帮助。