我知道这不是一个编程问题,但它是相关的。
我用的是 大型跨平台工程。在 Windows 上使用 VC + + 2008。在 Linux 上我使用 gcc。这个项目中有大约40000个文件。在编译和链接同一个项目时,Windows 比 Linux 慢10到40倍。我该怎么补救?
在 Linux 上单次更改增量构建需要20秒,在 Windows 上需要 > 3分钟。为什么?我甚至可以在 Linux 中安装这个“黄金”链接器,把时间缩短到7秒。
同样,Linux 上的 git 比 Windows 快10到40倍。
在 git 的情况下,有可能 git 不是以最佳方式使用 Windows,而是使用 VC + + ?你可能会认为微软想让他们自己的开发人员尽可能地高效,而更快的编译将大大有助于实现这一点。也许他们正试图鼓励开发人员使用 C # ?
作为简单的测试,找到一个包含很多子文件夹的文件夹,然后执行一个简单的
dir /s > c:\list.txt
在视窗上。执行两次并计算第二次运行的时间,以便它从缓存中运行。将文件复制到 Linux 并执行相应的2次运行和第二次运行的时间。
ls -R > /tmp/list.txt
我有两台规格一模一样的工作站。HP Z600拥有12G 内存,8核3.0 GHz。对于一个包含约400k 个文件的文件夹,Windows 需要40秒,而 Linux 需要 < 1秒。
是否有一个注册表设置,我可以设置加速 Windows? 什么给?
一些稍微相关的链接,与编译时间相关,不一定是 i/o。
显然是 在 Windows10(而不是 Windows7)中有一个问题,即关闭进程会持有一个全局锁。当使用多个内核和多个进程编译时,这个问题就出现了。