【问题标题】:Solaris 12.3 C++ compiler out of memorySolaris 12.3 C++ 编译器内存不足
【发布时间】:2019-02-11 09:30:24
【问题描述】:

我有一个 24MB 的 swig 生成的 C++ 代码文件,将近 5,00,000 行代码。将编译器优化级别设置为 xO0 时,我能够编译它,但一旦我添加任何其他 C++ 编译器标志(如 xprofile ...),就会失败。我正在使用 Solaris Studio 12.3 C++ 编译器。

以下是控制台错误:

    Element size (in bytes):        48
    Table size (in elements):  2560000
    Table maximum size:        134217727
    Table size increment:         5000
    Bytes written to disk:           0
    Expansions required:             9
    Segments used:                   1
    Max Segments used:               1
    Max Segment offset:        134217727
    Segment offset size::           27
    Resizes made:                    0
    Copies due to expansions:        4
    Reset requests:                  0
    Allocation requests:       2827527
    Deallocation requests:      267537
    Allocated element count:      4086
    Free element count:        2555914
    Unused element count:            0
    Free list size (elements):       0

ir2hf:错误:内存不足

提前致谢。

【问题讨论】:

  • 抱歉,我的魔杖不起作用,我怀疑其他人的也一样。要么在主机上安装更多内存,要么(如果在虚拟机中运行)为虚拟机分配更多内存。如果编译器在使用某些选项时内存不足 - 编译级别是一个选项 - 这是一个公平的迹象,它需要更多内存才能工作。通常没有办法让编译器用比它需要的更少的内存来做事情。因此,您可以为其提供更多可用内存。要么,要么编辑文件并从中创建一组较小的文件,然后分别编译。
  • 我的水晶球告诉你试试这个:以 root 身份:usermod -K defaultpriv=basic,sys_resource <userid>,然后以用户身份:ulimit -d unlimited
  • 我不想把它变成更小的文件,因为它是自动生成的文件。
  • 12.3 已经过时了。 IIRC,当时这些工具还是 32 位的,所以他们不能使用超过 4G 的内存。您可能需要更新的编译器。

标签: c++ compiler-errors solaris-10 solaris-studio


【解决方案1】:

我发现这个article 表明它与 Solaris 数据段的内存量有关。

按照博客中的步骤,尝试取消限制。

$ usermod -K defaultpriv=basic,sys_resource karel

现在注销并再次登录并更改限制:

$ ulimit -d unlimited

然后检查限制是否已更改

$ ulimit -d

输出应该是unlimited

【讨论】:

  • 内存已设置为“无限”,但仍无法正常工作。
  • 你确定你的机器上有足够的内存吗?
  • 我正在使用服务器。它有足够的 Memory.load 平均值:3.41、4.07、4.48 17:00:36 1211 个进程:1199 个休眠、3 个僵尸、6 个停止、3 个 CPU 状态:92.2% 空闲、3.5% 用户、4.3% 内核、0.0% iowait, 0.0% swap 内存:160G real, 41G free, 102G swap in use, 20G swap free
  • 好的,看起来内存充足。抱歉,不知道如何解决。
猜你喜欢
  • 2020-08-17
  • 1970-01-01
  • 2019-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-14
  • 2020-12-23
  • 1970-01-01
相关资源
最近更新 更多