由于Windows更新,gcc编译时间增加

时间:2018-04-10 18:50:38

标签: gcc windows-update codesourcery

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

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

旧电脑:

  1. Windows 7 x64
  2. 16GB DDR3
  3. 英特尔3770K
  4. SSD
  5. 新电脑:

    1. Windows 10 x64
    2. 16GB DDR4
    3. Intel 7700k
    4. SSD
    5. 完全相同的96个文件集的编译时间是:

      旧:60 secs
      新:104 secs

      尽管CPU速度更快,内存更快,但编译变得更慢

      我在几位同事的电脑上观察到了这一点。

      此时,除了以下情况之外,您认为这是一个硬件问题:自Sep-2017以来我有 PC配置,并且突然间没有任何硬件更改,我注意到在Oct/Nov-2017中,我的编译速度急剧下降。

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

      问题

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

      澄清#1

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

      更新#1

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

      我99%肯定这是gcc for windows中的“bug”。我安装了gcc from the ARM website,我看到了同样的问题。

      但是,当我使用cl.exe编译空白文件100次时,它只需要5秒与Windows 7和旧版Windows 10(10月/ 11月)上的gcc相同

      我的测试脚本是:

      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"
      ...
      

1 个答案:

答案 0 :(得分:2)

Windows Defender在构建期间反复扫描GCC二进制文件。

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

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