【问题标题】:Reduce g++ RAM usage减少 g++ RAM 使用量
【发布时间】:2019-12-25 15:25:02
【问题描述】:

除了“获得更多内存”之外,我还没有真正找到这个问题的可靠答案。有没有办法减少 g++ 在编译过程中使用的内存?我(出于某种原因)试图在具有 1GB 内存的 g4 mac mini 上编译 webkitgtk。它无法升级。当前的编译选项是 -Os -mabi=altivec -mcpu=native -mtune=native。 它有 1GB 内存和 1GB 交换空间,但内存不足。虽然理论上我可以继续添加交换空间,但实际上这会变得非常缓慢,我想尽量减少它。

【问题讨论】:

  • 你有一个编码问题,而不是 gcc 问题。您可以尝试在 .h 文件中使用更多前向声明而不是 .h 文件包含,使用 pimpl 习惯用法隐藏实现,并减少模板的使用(和提升!)。
  • 有一天我希望对 c 和 c++ 有足够的了解,以便进行类似的有用编辑。不过还没有。
  • 您可以添加更多交换空间(大约 16+GB)。它会非常慢,但应该允许编译完成)。
  • @RavenKing 正如 Shloim 所说,您可以更多地使用前向声明,删除不必要的包含,减少模板使用(使用外部模板)等,以减轻痛苦。但归根结底,您必须接受编译任何大型现代 C++ 程序都非常占用内存。而一台 1GB 内存/1GB 交换机真的在 2019 年的开发工作相当动力不足..
  • 较小的编译单元。

标签: c++ gcc g++ powerpc webkitgtk


【解决方案1】:

Webkitgtk 在编译期间对 RAM(和时间)的要求是出了名的。 Webgtk build instructions 链接到 some suggestions,这可能很有用。但这些页面给人的总体印象是,您需要远远超过 1GB 的 RAM,除非您准备让构建运行一段时间,可能是几天。

也许您可以访问一台或多台其他计算机。在这种情况下,您可以考虑设置交叉编译环境,甚至可能安装distcc 以利用这些额外资源。

为 OS X 目标设置交叉编译环境是一个项目,但是一旦你完成了设置 distcc 就非常简单了。并且通过显着减少编译时间,不需要很多编译就可以及时收回投资。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 2020-04-07
    • 1970-01-01
    • 2012-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多