MinGW编译速度过慢

问题描述 投票:4回答:1

几年前,我开始在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中的编译输出日志时,有时候编译简单暂停10秒或更长时间并且CPU使用率从~100%下降到关闭没有任何事情发生在5%,直到它突然继续编译过程。我确定这个持续的暂停是上述平均时间的一部分,但我不知道为什么MinGW会显示这种行为。

windows qt compilation mingw compiler-optimization
1个回答
2
投票

您可能想要检查花费的时间。

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.