0

我的团队正在使用arm-none-eabi-gcc.exe (Sourcery CodeBench Lite 2012.09-63) 4.7.2从内部编译 C++ Visual Studio 2013

我的同事最近升级了他们的机器。

旧电脑:

  1. 视窗 7 x64
  2. 16GB DDR3
  3. 英特尔 3770K
  4. 固态硬盘

新电脑:

  1. 视窗 10 x64
  2. 16GB DDR4
  3. 英特尔 7700k
  4. 固态硬盘

完全相同的 96 个文件集的编译时间是:

旧:60 secs
新:104 secs

尽管更快的 CPU 和更快的内存,编译变得更慢。

我在几位同事的计算机上观察到了这一点。

在这一点上,你会认为这是一个硬件问题,除了以下几点:我有了的PC 配置Sep-2017,突然之间,没有任何硬件更改,我注意到Oct/Nov-2017我的编译速度急剧下降。

因此,我认为这是导致此问题的 Windows 更新。

问题

我如何才能明确推断出这种放缓的原因?

澄清 #1

我并不是说在 Windows 更新期间我的编译速度会变慢。我的意思是过去发生的某些 Windows 更新导致我的编译速度变慢。

更新#1

我正在使用一个空白.cpp文件并将其编译 100 次,但我仍然看到 Windows 7 PC 和 Windows 10 之间的时差完全相同。

我 99% 确定这是 Windows 的 gcc 中的一个“错误”。我从 ARM 网站安装了gcc ,我看到了同样的问题。

但是,当我cl.exe用来编译一个空白文件 100 次时,它只需要 5 秒,与 Windows 7 和旧版 Windows 10 上的 gcc 相同(Oct/Nov-ish)

我的测试脚本是:

set GCC_EXE="C:\Program Files (x86)\GNU Tools ARM Embedded\7 2017-q4-major\bin\arm-none-eabi-gcc.exe"
set startTime=%time%
echo off
%GCC_EXE% -c "empty.cpp" -o ".\empty.obj"
%GCC_EXE% -c "empty.cpp" -o ".\empty.obj"
%GCC_EXE% -c "empty.cpp" -o ".\empty.obj"
...
4

1 回答 1

2

Windows Defender 在构建过程中反复扫描 GCC 二进制文件。

禁用“实时保护”可以解决问题。

此外,将可执行文件所在的文件夹添加到排除列表也可以。

于 2018-04-11T16:29:51.463 回答