Oz1*_*123 13 c performance gcc compilation
如果我想从中获得更好的性能,比如说MySQLdb,我可以自己编译它,我会得到更好的性能,因为它不是在i386,i486上编写的,只是在我的CPU上.此外,我可以选择编译选项等等......现在,我想知道对于非常规软件(例如编译器)是否也是如此.这是第一部分:
(是的,我知道,我可以编译我的编译器并对其进行基准测试......但也许......有人已经知道了答案,并将与我们分享=)
pax*_*blo 14
在回答你的第一个问题时,几乎肯定是的.二进制版本gcc将是"最低公分母",如果您使用更适合您的系统的特殊标志编译它们,它很可能会更快.
至于你的第二个问题,没有.
无论你如何优化它,编译器的输出都是相同的(当然,除非它有问题).
换句话说,即使你在编译时完全填满你的编译器标志gcc,到你的特定编译版本gcc需要一个半星期来编译"Hello World",实际的"Hello World"可执行文件应该与一个由"最小公分母"产生的gcc(如果你使用相同的标志).
(1)有可能.如果您为编译器引入了一个新的优化,并使用此优化重新编译它 - 重新编译的代码可能会更好地执行.
(2)没有!!!! 编译器无法改变代码的逻辑!在您的情况下,代码的逻辑是最终生成的本机代码.因此,如果使用编译器A_2或B编译编译器A_1,则不会影响A_1生成的本机代码[在此处A_1,A_2是相同的编译器,索引仅为了清晰起见].