我的团队正在使用arm-none-eabi-gcc.exe (Sourcery CodeBench Lite 2012.09-63) 4.7.2
从内部编译 C++ Visual Studio 2013
。
我的同事最近升级了他们的机器。
旧电脑:
- 视窗 7 x64
- 16GB DDR3
- 英特尔 3770K
- 固态硬盘
新电脑:
- 视窗 10 x64
- 16GB DDR4
- 英特尔 7700k
- 固态硬盘
完全相同的 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"
...