-1

在我们寻求优化 Delphi 编译时间的过程中,我们发现不同 PC 之间的编译时间存在一些奇怪的差异。

问题在于,在某些 PC 上,“原始”编译时间比慢速编译时间快 2 倍,我们根本无法解释为什么会出现这种情况。

测试设置

  • 我们在 3 台配置几乎相同的不同 PC 上测试了编译时间。这是从我们的 IT 部门交付和配置的带有 Windows 7 Enterprise 64 位服务包 1 的 PC。

  • Delphi是我们自己安装的,是Delphi XE with update 1。

  • 硬件规格与 Core i7-3770 3,4 GHz 8G Ram 和 256 Gb SSD 磁盘几乎相同。

  • 我们对所有 3 台 PC 在通用系统、磁盘和内存上的性能进行了基准测试。

  • 我们使用带有 dcc32.exe 的命令行编译来执行测试。我们在不同的项目上进行了测试,所有项目都是从公共源存储库中提取的。

测试

经过大量测试,我们查看了不同的 Delphi 环境配置以及 Windows 7 设置。所有测试都显示在 2 台 PC 上的性能相似,而 1 台 PC 的运行速度是原来的两倍。

最后,我们制作了一个简单的测试文件,其中包含 1 个简单的类和许多增加变量的行。测试文件为 32 Mb,在高速 PC 上编译时间为 1.3s。在其他 2 台 PC 上,它需要 >3 秒

编译命令:

"c:\program files (x86)\embarcadero\rad studio\8.0\bin\dcc32.exe" -$O- -$W+ -$J+ -$YD --no-config -B -Q -AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE -DDEBUG; -U;"c:\program files (x86)\embarcadero\rad studio\8.0\lib\Win32\release" -V -VN -K00400000 -GD -NBDcp -NHHpp -NODcp ..\Test.pas

知道为什么编译时间在几乎相同的 PC 上如此不同吗?

我们可以做哪些测试来解决问题?

4

1 回答 1

4

正如 David 所指出的,Delphi 编译通常是磁盘绑定的。最可能的解释是您的 SSD 处于各种“闯入”状态。即使是完全相同的 SSD 在其生命周期内的性能也会有所不同。开箱即用的 SSD 具有极高的峰值性能,随着驱动器开始建立使用历史记录,性能会急剧下降。特别是对于相当新的系统,您会看到 SSD 性能会迅速变化,直到驱动器“损坏”并稳定在大致稳定的状态水平。

许多其他因素也会影响 SSD 性能,原始基准无法重现可能影响驱动器利用其缓存或其他可用性能优化的能力的真实条件。

如果您真的感兴趣,这是存储网络行业协会关于该主题的好读物:

使用 SNIA SSS 性能测试规范了解 SSD 性能

于 2013-10-11T12:22:32.323 回答