我正在工作或性能评估,我遇到了一个问题:当我向代码添加一些指令时,它比初始代码执行得更快,我认为由于编译器优化(没有指定任何)。
编译器优化如何工作?特别是它们在将C转换为汇编时还是在从汇编代码到二进制代码的步骤中执行? 我想两者都可以知道在每一步中执行哪些优化?
我看过汇编,但我发现只有轻微的差异,所以我认为涉及一些特定于架构的优化。
谢谢!
答案 0 :(得分:2)
汇编是二进制代码,用于所有意图和目的BTW。大多数优化发生在将更高级语言编译为汇编时。添加功能并且速度更快,这很奇怪...但编译器优化有点神奇。
你可以深入了解它,你可以将你的C编译成汇编(gcc -S),看看它为你的版本做了什么......当然要记住并非所有指令都是平等的,如果您对汇编有一些了解,以及CPU和总线以及内存等在低级别工作,这将对您有所帮助。