如何在c中查看优化代码

sga*_*esh 9 c optimization

我可以使用分析器,可执行文件的大小和执行时间来检查优化.

我可以得到优化的结果.但我有这些问题,

  • 如何获得优化的C代码.
  • C使用哪种算法或方法来优化代码.

提前致谢.

abu*_*ker 12

您可以使用-fdump-tree-optimizedgcc 选项了解优化.你会得到一个优化的文件.您无法运行代码但使用它可以了解优化.别忘了包含-O2或者-O3其他一些级别.


Bil*_*eal 9

通常,代码不会被优化为C.通常,在将C转换为某种形式的中间表示形式之后很久就会完成优化传递,编译器在内存中更容易使用.因此,直接回答您的问题是优化的C代码永远不存在.


Jes*_*kan 8

AC编译器通常不会在任何阶段生成优化的C. 相反,编译器将C转换为简化的内部表示,并且大多数编译器优化将在这些中间表示中的一个或多个上完成.然后编译器从中生成程序集或二进制文件.

您可以获得的最接近的可能是将文件编译为汇编而不进行优化,并再次进行最高优化,然后比较汇编输出.你必须掌握汇编语言才能做到这一点.如果您正在使用gcc,请阅读-S和-O开关,了解如何(或不执行)此操作.

如果您的目标是编写更快的代码,那么,最好的办法是通过仔细使用分析器,在C级使用更好的算法和数据结构来编写更好的C语言.

如果您的目标只是了解优化,请尝试维基百科上的程序优化编译器优化以获取一些一般信息.