【问题标题】:Improve compiling speed in VS project using C++ Boost Libraries使用 C++ Boost 库提高 VS 项目的编译速度
【发布时间】:2010-09-14 23:44:36
【问题描述】:

我刚刚开始使用 Boost 1.36。这些库对于减少我正在处理的非托管 C++ 软件项目中所需的代码量非常有用。

但是,当我尝试使用这些库时,我的编译时间增加了十倍。这几乎可以抵消我通过使用该库获得的生产力收益。

我正在使用具有 2GB RAM 和 VS 2003 的 3GHz Intel 双核。

我添加的代码有一个sn-p。

#include “升压/数字/ublas/matrix.hpp” #include “升压/数字/ublas/vector.hpp” #include “升压/数字/ublas/matrix_proxy.hpp” typedef ublas::bounded_matrix 矩阵; typedef ublas::bounded_vector 向量;

void Print(const Matrix& amount)
{

Vector total;

total.clear();
for (int category = 0; category < NUM_OF_CATEGORIES; category++)
{
    PrintLine(ublas::row(amount, category));
    total += ublas::row(amount, category);
}

PrintLine(total);   

}

VS 2003 有问题吗?
我知道 VS 2008 速度更快,但升级将很难。
仅仅是 Boost 针对快速运行时间而不是快速编译时间进行了优化吗?
我只是以次优方式使用 Boost 库吗?
还是我只是在工作中使用了错误的工具?

【问题讨论】:

    标签: c++ performance visual-studio boost


    【解决方案1】:

    你试过Incredibuild吗?它将允许您在多台计算机上分发您的构建。我已经看到它成功使用了。

    【讨论】:

      【解决方案2】:

      您是否尝试过使用预编译的标头?这包括 StdAfx.h 中的 boost 头文件或您用于预编译头文件的任何头文件?

      【讨论】:

      • 我个人并不认为预编译的头文件有助于加快开发速度。如果你只是在构建一些东西,它们很棒,但如果你在头文件中改变东西,那么它们并不总是能真正加快速度。出于这个原因,我倾向于使用非预编译的头文件构建来开发......
      • 这取决于您添加的标题。如果您从代码中添加标头,那么肯定会使情况变得更糟,因为它会在每次标头更改时强制重新构建。但是库头文件(例如 boost)通常不会改变。在我们的应用程序中使用预编译的 Qt 库头文件将编译时间减少了 30-40%
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-27
      • 2013-04-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多