Oracle® Solaris Studio 12.4:Fortran 用户指南

退出打印视图

更新时间: 2014 年 12 月
 
 

3.4.69 –O[n]

指定优化级别。

n 可以是 12345。在 -On 之间不允许有空格。

如果未指定 -O[n],则仅执行非常基本级别的优化,即限于局部公共子表达式消除和无用代码分析。与不使用优化相比,使用优化级别进行优化可以大大提高程序的性能。对于大多数程序,建议使用 -O(它设置 -O3)或 -fast(它设置 -O5)。

每个 -On 级别的优化都包括在低于它的级别上执行的优化。通常,编译程序时使用的优化级别越高,获得的运行时性能也越高。但是,优化级别越高,编译时间会越长,可执行文件也越大。

使用 -g 进行调试不会抑制 -On,但是 -On 在某些方面会限制 -g;请参见 dbx 文档。

-O3-O4 选项降低调试的效用,这样您无法从 dbx 显示变量,但仍可以使用 dbx where 命令获取符号回扫。

如果优化器内存不足,则它尝试在较低优化级别上再次进行,即继续在原始级别上对后续例程进行编译。

有关优化的详细信息,请参见《Fortran 编程指南》的“性能分析”和“性能与优化”这两章。

–O

此选项与 -O3 等效。

–O1

提供最少的语句级优化。

如果更高的级别会导致编译时间过长,或者超过了可用交换空间,请使用此选项。

–O2

启用基本块级别的优化。

通常,此级别产生的代码大小是最小的。(另请参见 -xspace。)

–O3 的使用应优先于 -O2,除非 -O3 导致编译时间过长、超过交换空间或生成过大的可执行文件。

–O3

在函数级别上增加循环解开和全局优化。自动添加 -depend

通常,-O3 生成的可执行文件较大。

–O4

增加包含在同一文件中的例程的自动内联。

通常,-O4 生成的可执行文件较大(因为进行了内联)。

-g 选项会禁止上述的 -O4 自动内联。–xcrossfile 可增加使用 -O4 情况下的内联范围。

–O5

尝试主动优化。

仅适用于程序中占用计算时间最多的小段代码。-O5 的优化算法要花费更多的编译时间,而且在用于过大的源程序代码段时会降低性能。

如果使用分析反馈进行优化,则此级别上的优化更有可能提高性能。请参见 -xprofile=p