执行时间从-o0增加到-os ..so是指编译时间或执行时间的时间..?

时间:2013-11-25 11:51:54

标签: c

我们知道gcc中的时间从-0o增加到-0s。 时间是指编译时间或执行时间还是两者兼而有之? 因为从-o0到-os的二进制发生了变化,那么指令执行的方式也会有所不同,所以执行的时间也会改变,这是正确的吗?

2 个答案:

答案 0 :(得分:1)

一般来说,当你提高优化级别时,你要求编译器更加努力,因此编译时间会更长。执行时间应该更短,因为这是优化代码的全部目的。

当然,根据编译器优化代码的方式,二进制文件会有所不同。

优化可能包括:

  • 内联代码
  • 删除临时变量
  • 简化表达
  • 以及更多

其中每个都会影响生成的代码。

答案 1 :(得分:0)

我理解这个问题是为什么大小优化的代码比速度优化的代码或未经优化的代码慢。

许多优化技术(如内联函数或展开循环)都可以通过增加代码大小来提高速度。

使用-os进行优化时,会应用所有不会增加代码大小的-02优化。 您在这里找到更多细节: http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html