我正在进行工作或性能评估,遇到了一个问题:当我向代码中添加一些指令时,它的执行速度要比初始代码快,我认为是因为编译器的优化(没有指定任何指令)。
编译器优化是如何工作的?尤其是,它们是在将C转换为汇编时执行的,还是在从程序集转换为二进制代码的过程中执行的?不过,我想这两种方法都有可能知道在每一步中执行哪一种优化?
我看过程序集,但是我只发现了一些细微的差异,所以我认为涉及到一些特定于体系结构的优化。
谢谢!
发布于 2015-10-15 12:03:38
程序集是二进制代码,对所有意图和目的都是BTW。大多数优化发生在将高级语言编译为程序集时。奇怪的是你增加了功能而且它变得更快..。但是编译器优化是一种黑暗魔法。
你可能会找到它的底部,你可以编译你的C到程序集(gcc -S),看看它对你的版本做了什么.当然,并不是所有的指令都是平等创建的,如果您对组装以及CPU、总线和内存等在较低级别上的工作方式有一定的了解,这将对您更有帮助。
https://stackoverflow.com/questions/33147881
复制相似问题