2011-12-07 119 views
2

大概我的问题听起来很奇怪,但我的观点是:我必须编译一个使用GCC的程序,如果我从源代码编译GCC,我会从使用新GCC编译的软件的性能方面获得轻微优势?我应该期待什么?编译器的编译可能会影响编译的程序?

+0

编号编译是一个确定性过程。 –

+1

你不会说你有什么架构,你有什么编译器,或者你打算建立什么编译器。使用完全相同的选项重建完全相同的编译器将不会执行任何操作,但升级是一个不同的故事。 – ams

回答

0

性能差异通常不是或可以忽略不计。

在一个非常罕见的,真正非常罕见的情况下,你可以看到明显的差异,但并不总是性能的改善。降解也是可能的。

1

除非你正在构建GCC的更新版本,或使cloog,石墨等

+0

但是,这可以有所作为,通常很小(几个百分点) –

5
  1. 你不会得到任何更快的程序进行优化与建标志一个编译器。由于程序是编译器的输出,并且优化不会更改正确程序的输出,所以程序保持不变。
  2. 但是,如果您的分销商发运不完整的编译器,您可能会从新的可用选项中获益。通过GCC手册查看要启用的任何选项(如某些目标体系结构变体),并且如果在当前的编译器构建中无法启用它们,那么定制编译器中可能会有潜力。但是,它不太可能是它值得它。