什么是一个好的CPU / PC设置来加速密集的C ++ /模板编译?

我目前有一台带有Opteron 275(2.2Ghz)的机器,这是一款双核CPU,4GB内存以及非常快速的硬盘。 我发现在编译使用C ++模板的很简单的项目(想一想boost等)时,我的编译时间可能需要相当长的一段时间(小事情需要几分钟,较大项目需要很长时间)。 不幸的是,只有一个内核被锁定在100%,所以我知道这不是I / O,似乎没有办法利用C ++编译的其他内核。


使用模板编译时间问题通常是链接问题,而不是编译问题。

在.cpp文件内部使用模板,但要确保标题实际上不包含模板,这是解决这些问题的好方法。 这可以通过向前声明类或者将实现类包装在一个只声明公共成员的抽象基类(基本上是Pimpl习语)中来完成。


你在使用预编译头文件吗? 它们通常提供我用C ++项目获得的最大编译速度提升。

另外,根据您的编译器,您可以启用多线程编译。 例如,使用Visual C ++,它是/ MP开关(详细信息请参阅此处),但启用/ MP并不总是可行,具体取决于您使用的其他命令行选项。


为了利用基于Makefile的系统进行多线程编译,请查看-j开关,通常的建议是调用

make -j<number of cores + 1>
链接地址: http://www.djcxy.com/p/14983.html

上一篇: What is a good CPU/PC setup to speed up intensive C++/templates compilation?

下一篇: Which features of C++ are particularly resource intensive at compile time?