-qmaxmem

适用的调用

表 1. 接受给定选项的调用
选项 xlc (编译 C) xlC (编译 C++) xlclang(编译 C) xlclang++(编译 C++)
-qmaxmem
注: 此表中仅列出典型调用。 对于所有基本调用及其等效特殊调用,您可以参阅 编译器调用的完整列表

类别

优化和调整

等效编译指示

表 2。 两个类别的调用的编译指示等效项
xlc/xlC 和其他遗留的调用命令 xlclang/xlclang + + 调用命令
#pragma 选项 maxmem

用途

限制编译器在对指定千字节数执行特定的内存密集型优化时分配的内存量。

语法

读取语法图跳过可视语法图 -qmaxmem=大小限制

缺省值

  • -qmaxmem=8192 (当 -O2 生效时)。
  • -O3 或更高优化级别生效时的 -qmaxmem=-1

参数

大小限制
要由优化使用的内存的千字节数。 限制是特定优化的内存量,而不是整个编译器的内存量。 在整个编译过程中所需的表不受此限制影响或包含在此限制中。

-1 的值允许每个优化使用尽可能多的内存,而无需检查内存限制。

使用量

较小的限制并不一定意味着产生的程序会更慢,只是编译器可能会在找到所有提高性能的机会之前完成。 增加限制并不一定意味着产生的程序会更快,只是编译器最好能够在它们存在的情况下找到提高性能的机会。

当编译器需要较少的内存时,设置较大的限制不会对源文件的编译产生负面影响。 然而,根据编译的源文件、源代码中的子程序大小、机器配置以及系统的工作负载,将限制值设置过高或设为 -1 ,可能会超出可用系统资源。

预定义的宏

无。

示例

要编译 myprogram.c 以便为本地表指定的内存为 16384 千字节,请输入:
xlc myprogram.c -qmaxmem=16384