windows – MinGW编译速度过慢

几年前,我开始在
Windows 7和
Linux Ubuntu中使用Qt,并且它总是可以快速编译,而MinGW用于Windows.但是在过去几年左右,也许是由于Qt和MinGW版本的更新,我开始发现Windows内部编译速度的降低.我做了一些研究,试图找出MinGW与Linux相比开始变得如此之慢的原因(之前没有!),人们告诉我的一切是MinGW在Windows中速度较慢,如果可能的话,它会更好使用Linux.

由于我想继续我的项目,我遵循了这个建议,因为我使用的Linux相对没有问题.现在的情况是我必须回到Windows(现在更新到Windows 10)来对这个操作系统进行视觉校正,我需要再次使用MinGW,不得不像以前一样面对同样的问题.

但由于某些原因,似乎MinGW的缓慢变得更糟!虽然之前我至少能够在大约4分钟内编译应用程序,但现在我最后一次尝试它需要38分钟才能放弃并进入睡眠状态 – 这是一个只需要1:03分钟的项目在Linux下编译[在相同的编译配置下]!

好吧,我仍然知道MinGW的缓慢,但是随着对网络上这个问题的快速研究显示,这太慢了:所有回溯测试都可以在其他线程中找到SO,最多可以发现2x-3x更多的时间编译一个项目,而不是38x !!

所以我想知道在我的Windows中可能出现的这种夸张的缓慢发生的问题.我知道我最终安装了至少4种不同版本的MinGW;这会带来这个问题吗?

有趣的是,当使用-j选项进行编译并在Qt Creator中与Process Explorer一起观察编译输出日志时,有时候编译简单暂停10秒或更长时间并且CPU使用率从~100%下降到没有任何事情发生,接近5%,直到它突然继续编译过程.我确定这个持续的暂停是上述平均时间的一部分,但我不知道为什么MinGW会显示这种行为.

最佳答案 您可能想要检查花费的时间.

有很多工具可以让你捕获某个进程正在做的事情,我只列举其中两个:

> ProcMon
> XPerf或其successor

但要分析这些工具生成的报告,您需要深入了解.如果这无助于暂时禁用其他正在运行的服务和程序(如果您想知道哪个程序导致问题)或一次禁用所有这些服务.
查看sysinternals显示的TaskManager或Procexp的CPU使用率峰值可能有助于识别阻塞cpu的那些组件.
如果您的防病毒导致冲突导致编译速度过慢,则可以定义异常,然后防病毒软件将不会扫描某些程序或路径.

因此,首先使用已禁用的防病毒软件或甚至从干净的实时启动Windows CD尝试编译过程可能更容易.

点赞