我知道这不是编程问题,而是相关的。
我从事一个相当大的跨平台项目。在Windows上,我使用VC ++2008。在Linux上,我使用gcc。该项目中大约有40k个文件。Windows在编译和链接相同项目时比Linux慢10到40倍。我该如何解决?
在Linux上一次更改增量构建20秒,在Windows上一次增量构建3分钟。为什么?我什至可以在Linux中安装“ gold”链接器,并将时间缩短到7秒。
同样,在Linux上,git比Windows快10到40倍。
在git的情况下,git可能不是以最佳方式使用Windows,而是VC ++?您可能会认为Microsoft希望使自己的开发人员尽可能高效,而更快的编译将大大有助于实现这一目标。也许他们正在尝试鼓励开发人员使用C#?
作为一个简单的测试,找到一个包含很多子文件夹的文件夹,然后做一个简单的
dir /s > c:\list.txt
在Windows上。进行两次,并为第二次运行计时,以便它从缓存中运行。将文件复制到Linux并进行等效的2次运行,并安排第二次运行的时间。
ls -R > /tmp/list.txt
我有2个具有完全相同规格的工作站。配备12千兆RAM,8核3.0 GHz的HP Z600s。在包含约40万个文件的文件夹中,Windows需要40秒,而Linux需要不到1秒。
我可以设置注册表设置来加快Windows速度吗?是什么赋予了?
一些与编译时间相关的稍微相关的链接,不一定是I / O。
显然,在Windows 10(不是Windows 7)中存在一个问题,即关闭进程持有全局锁。当使用多个内核进行编译时,因此会使用多个进程,因此会遇到此问题。
该
/analyse
选项可能会影响性能,因为它会加载Web浏览器。(此处不相关,但很高兴知道)