自从几年前我开始在Windows 7和Linux Ubuntu中使用Qt,并且在MinGW被用于Windows的情况下,它总能快速编译。 但在过去的几年里,也许要感谢Qt和MinGW版本的更新,我开始考虑Windows内部编译速度的减慢。 我做了一些研究,试图找出为什么MinGW开始比Linux更慢(这不是以前!),而且所有人都告诉我MinGW在Windows中速度较慢,如果可能的话,它会更好使用Linux。
因为我想继续我的项目,所以我遵循了这个build议,因为我使用的Linux相对没有问题。 现在的情况是,我必须回到Windows(现在已经更新到Windows 10)来对这个操作系统进行可视化修正,我需要再次与MinGW一起工作,不得不面对同样的问题。
但由于某种原因,MinGW的速度似乎变得更糟! 在我至less能够在大约4分钟内完成应用程序的编译之前,现在是我最后一次尝试的时间,在我放弃并入睡之前花了38分钟 – 而这个项目只需要1:03分钟编译在Linux下[在相同的编译configuration下]!
好吧,我仍然知道MinGW的速度慢,但是在networking上对这个问题的一个快速研究显示,这太慢了:所有的回测人员都可以在SO的其他线程中发现,最多显示2倍到3倍的时间编译一个项目,而不是38x +!
所以我想知道我的Windows可能会出现什么样的问题,这种缓慢的情况会发生。 我知道我最终安装了至less4个不同版本的MinGW; 这可能会带来问题吗?
另外值得注意的是,当使用-j
选项进行编译,并在Process Explorer中查看Qt Creator中的Compile Output日志时,编译简单的时刻会暂停10秒或更长时间,并且CPU使用率会从〜100%降至接近5%没有任何事情发生,直到它突然继续编译过程。 我相信这个不断的暂停是上述平均时间的一部分,但是我不知道MinGW为什么显示这个行为。
任何帮助赞赏。
你可能想检查时间花在哪里。
有很多工具可以让你捕捉某个进程在做什么,我只列出其中的两个:
但要分析这些工具生成的报告,您需要相当深入的了解。 如果这无助于暂时禁用其他正在运行的服务和程序(如果您想知道哪个程序导致问题)或一次禁用所有服务。 查看由sysinternals显示的TaskManager或Procexp显示的cpu使用量的峰值也可以帮助识别那些阻止你的cpu的组件。 如果您的防病毒是导致编译速度非常慢的冲突的原因,您可以定义例外,则防病毒软件将不扫描某些程序或路径。
因此,首先尝试使用禁用的防病毒软件进行编译过程,或者使用干净的实时启动Windows CD更容易。