C 执行时间从-o0增加到-os..那么时间指的是编译时间还是执行时间。。?

C 执行时间从-o0增加到-os..那么时间指的是编译时间还是执行时间。。?,c,C,我们知道,在gcc中,时间从-0o增加到-0s。 时间指的是编译时间还是执行时间,还是两者都指? 由于二进制文件从-o0变为-os,那么指令的执行方式也会不同,因此执行时间也会改变。这是否正确?通常,随着优化级别的提高,您要求编译器更加努力,因此编译时间更长。执行时间应该更短,因为这是优化代码的全部目的 当然,根据编译器优化代码的方式,二进制代码会有所不同 优化可能包括: 内联代码 删除临时变量 简化表达式 还有更多 每种情况都会影响生成的代码。我理解的问题是,为什么大小优化的代码比速度优化

我们知道,在gcc中,时间从-0o增加到-0s。 时间指的是编译时间还是执行时间,还是两者都指?
由于二进制文件从-o0变为-os,那么指令的执行方式也会不同,因此执行时间也会改变。这是否正确?

通常,随着优化级别的提高,您要求编译器更加努力,因此编译时间更长。执行时间应该更短,因为这是优化代码的全部目的

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

优化可能包括:

  • 内联代码
  • 删除临时变量
  • 简化表达式
  • 还有更多

每种情况都会影响生成的代码。

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

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

当使用-os进行优化时,将应用-02的所有优化,这些优化不会增加代码大小。 您可以在此处找到更多详细信息: