【发布时间】:2011-12-05 20:45:01
【问题描述】:
我有一个使用 Qt 框架的大型项目,我正在努力寻找在我的 Windows 安装上编译它的最快方法。
在我家里的 linux 机器上,我使用 3 年的双核 Linux Mint 设置(机器是 3 年的,没有安装 Linux Mint),使用:make -j2 两个内核都使用full(ish) 并且相对较快地编译代码,大约 10 分钟从干净构建开始。
但是,在我的工作 Windows PC 上,它是 2.0 GHz Intel Core 2 Quad (XP),我似乎永远无法让编译速度与我的 Linux 机器一样快。该程序的开发人员文档建议使用从 cmake 生成的项目文件使用 Visual Studio C++,但这似乎只使用一个内核,编译需要一个多小时,而在我的 Linux 安装上大约需要 10 分钟(从干净构建)。
我使用过jom,但即使使用所有内核,它仍然需要大约一个半小时,因为它似乎只在每个内核上使用少量 cpu。
对我来说,我的旧 Linux 机器构建速度很快,但四核却一蹶不振,这对我来说毫无意义。
【问题讨论】:
-
我也遇到过这种情况,我的全新 Win7 四核机器在工作中构建我的应用程序所需的时间至少比我在家使用 4 年的双核笔记本电脑要长 3 倍。我认为这只是 MinGW 的限制,但如果您使用 VS 来体验它,那么显然情况并非如此。
-
我发现通过在 SSD 或虚拟内存驱动器上构建(有免费的软件/驱动程序很容易获得)大大缩短了构建时间
-
在阅读了 Jeff Atwood 所写的关于 SSD 的文章后,我们一直在讨论转向 SSD。然而,SSD drive failure rates 这样的事情让我们的系统人员相当紧张!
-
我在我的家庭系统中安装了 OCZ Vertex3,它的速度非常快。使用从旋转磁盘构建的 6 核处理器,所有内核运行大约 10%,但从 Vertex3 开始,它们都始终在 85% 和 100% 之间。 (MinGW)(wrt 失败率;不会说话,到目前为止还不错)
-
我的理解是它依赖于文件 IO 速度,并且“很多小文件”(编译)在 Windows 上要慢很多。不将其发布为答案,因为它是反答案,而只是让您知道您可能无法期望获得相同的性能。 (我听说在 Linux 上的 VM 中运行 Windows,有效地在 Windows 和存储硬件之间添加另一层,据说编译速度比原始 Windows 更快,但我还没有进行公平的比较来确定。)
标签: c++ windows qt compilation cmake