gpt4 book ai didi

c++ - 如何提高 Visual C++ 编译时间?

转载 作者:IT老高 更新时间:2023-10-28 14:01:33 50 4
gpt4 key购买 nike

每次提交时,我都会在 buildbot 中编译 2 个 C++ 项目。两者都是大约 1000 个文件,一个是 100 kloc,另一个是 170 kloc。从 gcc (4.4) 到 Visual C++ (2008) 的编译时间非常不同。

一个项目的 Visual C++ 编译需要 20 分钟。他们无法利用多个核心,因为一个项目依赖于另一个。最后,在 Debug 和 Release 中完整编译这两个项目(32 位和 64 位)需要超过 2 1/2 小时。

一个项目的 gcc 编译需要 4 分钟。它可以在 4 个内核上并行化,大约需要 1 分 10 秒。 2 个项目的 4 个版本(调试/发布,32/64 位)的所有 8 个构建都在不到 10 分钟的时间内完成编译。

Visual C++ 编译时间发生了什么变化?它们基本上慢了 5 倍。

编译 C++ kloc 的平均预期时间是多少?我的是 7 s/kloc with vc++ 和 1.4 s/kloc with gcc。

可以做些什么来加快 Visual C++ 上的编译时间吗?

最佳答案

减慢 VC++ 编译器的一件事是,如果您有一个头文件来初始化非平凡 const 值类型的具体实例。您可能会在 std::string 类型的常量或 GUID 上看到这种情况。它会影响编译和链接时间。

对于单个 dll,这会导致 10 倍的减速。如果您将它们放在预编译的头文件中,或者只是在头文件中声明它们并在 cpp 文件中初始化它们,这会有所帮助。

请查看病毒扫描程序,并确保尝试使用预编译的 header ,没有它您将看不到 VC++ 的最佳状态。

哦,是的,请确保 %TMP% 文件夹与您的构建写入所在的分区位于同一分区,因为 VC++ 会生成临时文件并稍后移动它们。

关于c++ - 如何提高 Visual C++ 编译时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2251212/

50 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com