有什么能影响同一代码的gcc构建吗?

时间:2014-03-28 14:11:20

标签: gcc

例如我们有一些源代码。 并且相同源代码的相同GCC的两个不同构建为您提供了该程序的不同CPU负载

除了源代码和gcc选项之外,是否有可能影响编译? 附:我猜这是一个愚蠢的问题,但无论如何......

1 个答案:

答案 0 :(得分:0)

假设您没有在gcc调用之间更新系统的其余部分,gcc应该生成相同的可执行文件。您可以通过比较它们来检查是否是这种情况:

$ gcc ...
$ mv my_program my_program.1
$ gcc ...
$ cmp -l my_program.1 my_program

如果这不产生任何输出,则可执行文件是相同的。

但是,当您编写" CPU load"时,您似乎会参考程序的运行时间,并且很多事情都可以影响它。例如:

  • 来自其他进程的系统负载
  • 时间(随机数)
  • 内存布局(库地址随机化)

如果差异仅为百分之几,那通常是由于测量精度有限。如果差异很大,我建议您使用分析器和/或发布有关您的程序的更多详细信息。