【问题标题】:Excessive compile time with boost::xpressive on Mac OS 10.6在 Mac OS 10.6 上使用 boost::xpressive 编译时间过长
【发布时间】:2011-02-06 10:26:46
【问题描述】:

我们正在使用 boost::xpressive 在 C++/ObjC 应用程序中处理正则表达式。自从更新到 Mac OS 10.6 以来,我们发现编译时间非常长(在 Dual-Quad MacPro 上,每个文件(!)需要 1-2 分钟...)其中表达式是通过 sregex::compile( )。此外,整个系统的性能变慢,导致应用程序无响应;对于所有其他文件,编译按预期运行。

在 10.5 和 10.6 上使用的编译器是 gcc4.2。你有类似的经历和/或建议吗?有没有办法使用 PCH 来防止这种情况发生?

感谢和问候
马蒂亚斯

【问题讨论】:

  • 嗯,它被称为boost::excessive 是有原因的,你知道的。 (SCNR)
  • 你试过 boost::quickercompile 吗?

标签: c++ macos boost compilation


【解决方案1】:

使用模板化模板(这就是 boost 的全部意义所在(好吧,不仅如此,而且很多))在许多编译器中都相当慢。这会导致 Boost.Spirit、Boost.Expressive 和其他软件的编译时间很差。已知问题,Boost 邮件列表中的常规主题。

你可以

  • 阅读文档并希望获得提示(一些 Boost Lib 确实记录了此类内容)
  • 也许 Boost.Regex 有更好的编译时间
  • 确保您仅在 .cpp 文件中使用此类内容 - 如果您在头文件中使用这些内容,您的编译时间将在“不相关”文件中受到影响
  • 将 Boost.Expressive 代码分离到一个单独的 .cpp 文件中
  • 希望下一个 g++ 版本能够更好地处理模板化代码

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-02
    • 1970-01-01
    相关资源
    最近更新 更多