【问题标题】:Slow compilation of boost-based unit test suite基于 boost 的单元测试套件编译缓慢
【发布时间】:2009-04-24 09:53:44
【问题描述】:

我使用 boost.test 库为我的应用程序编写单元测试。

问题是,当一个包含测试套件的特定 *.cpp 文件增长到一定大小时,该文件的编译会变得非常缓慢。

我使用 BOOST_AUTO_TEST_CASE 宏来定义测试用例。

Boost 版本是 1.34.1

Build env 是 Fedora 9 下的 autotools + gcc 4.3。

如果有人指出这种行为的可能原因,我将不胜感激。

【问题讨论】:

  • 你使用的是源码还是预建库?
  • 速度变慢的原因是什么,有多突然?是“再添加一个测试用例,整个过程慢了 10 倍”,还是更像“在某个点,每个测试用例的额外时间开始上升”?
  • >>您使用的是源码还是预建库?我使用预构建库。它有什么不同吗? >>它变慢的原因是什么,突然变慢的程度如何?在某些时候,它开始需要大约 3-5 分钟而不是 5 秒,添加更多测试用例不会显着改变时间。

标签: c++ unit-testing gcc boost compilation


【解决方案1】:

您可能会用完物理内存,并且系统开始使用交换(文件/分区)比正常情况(抖动)更密集。

【讨论】:

  • 嗯,它确实比平时使用了更多的内存。但它是结果而不是原因。问题是它为什么要使用这么多内存?
【解决方案2】:

尝试找出发生了什么的一种方法是使用 gcc 选项 -Q 并查看正常情况和极慢情况之间的区别。

【讨论】:

    【解决方案3】:

    您可以拆分同一个测试套件以跨越多个测试文件。这应该可以缓解您的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-01
      • 2018-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      相关资源
      最近更新 更多