如果我想从MySQLdb中获得更好的性能,比方说,我可以自己编译它,并且我会获得更好的性能,因为它不是在i386、i486或其他任何东西上编译的,只是在我的CPU上编译。此外,我可以选择编译选项等等..。现在,我想知道这是否也适用于非常规软件,如编译器.下面是第一部分:
(是的,我知道,我可以编译我的编译器并对其进行基准测试.但也许..。有人已经知道了答案,并将与我们分享
发布于 2012-01-23 13:13:09
在回答你的第一个问题时,几乎可以肯定是肯定的。二进制版本的gcc将是“最低公分母”,如果您用更适合您的系统的特殊标志编译它们,它很可能会更快。
至于你的第二个问题,没有。
不管您如何优化编译器,编译器的输出都是相同的(当然,除非它是错误的)。
换句话说,即使在编译gcc时完全堵塞了编译器标志,到了编译"Hello“需要一个半星期的时间,实际的"Hello”可执行文件也应该与“最低公分母”gcc生成的文件相同(如果使用相同的标志)。
发布于 2012-01-23 13:13:44
(1)这是可能的。如果您在编译器中引入了一个新的优化,并将其重新编译并包含此优化,那么重新编译的代码可能会执行得更好。
(2) No.编译器无法更改代码的逻辑!在您的情况下,代码的逻辑是在结束时生成的本机代码。因此,如果编译器A_1是使用编译器A_2或B编译的,则不影响A_1在这里生成的本地代码-- A_1,A_2是相同的编译器,索引只是为了清晰起见。
发布于 2012-01-23 13:13:19
a.Well,您可以将编译器编译到您的系统中,也许它会运行得更快。就像任何程序一样。(我认为这通常是不值得的,但要做什么就做什么)。
b.不。即使在计算机中编译编译器,它的行为也不应该改变,所以它生成的代码也不会改变。
https://stackoverflow.com/questions/8972138
复制相似问题