用C语言编写可并行执行的程序时,我们肯定会使用O flags来优化代码。
gcc -Olevel [options] [source files] [object files] [-o output file]
在大型项目中,我们通常split the code into several files .我没有找到答案的问题是:
程序的性能是否会因为我们将代码拆分到文件中而 O
标志没有足够的信息来进一步优化而完全下降?有这种可能吗?
最佳答案
当您将代码分解成单独的文件时,它可能会将其拆分为多个翻译单元,而编译器通常无法对其进行优化。
以在一个翻译单元中定义但在许多其他翻译单元中引用的常量为例。所有引用常量的计算都必须在运行时执行,因为常量不能在编译时折叠到它们中。
链接时间 optimization (-flto
) 是绕过限制的一种方法。
关于c - 将代码拆分为文件和 O 标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33443038/