【问题标题】:How to improve Delphi compiling speed?如何提高Delphi编译速度?
【发布时间】:2014-11-28 10:13:27
【问题描述】:

我有一个 290 项目 (.dproj) 的 Delphi 项目组 (groupproj)。编译 365,000 行代码大约需要 90 秒。

我正在使用配备 12GB RAM、SSD 和双核 CPU(4 个逻辑处理器)的笔记本电脑来构建项目组。通过在编译期间监控资源计量器,RAM 和 SSD 不是任务的限制。 CPU只使用一个逻辑处理器进行编译,我认为这是Delphi编译器的设计。

是否有任何选项可以通过使用更好的硬件或构建系统(如IncrediBuild)来显着缩短编译时间?

更好的硬件环境(RAID-0、XEON)会有多大帮助?

【问题讨论】:

  • 为什么不并行编译项目呢?此外,也许现在是重新考虑拥有 290 个项目而不是 1 个项目和 290 个配置文件的决定的时候了。
  • 可能我没有说清楚。我有一个 .groupproj 文件包含 290 个 .dproj
  • 这已经很清楚了。对于这么多项目,我能想象的唯一原因是它们基本上都是同一个项目,但它们之间的差异很小。但也许我错了。也许你真的有 290 个项目,它们都有不同的代码。不管怎样,写一个 Python 构建脚本来并行编译是我会做的。
  • 您是从 IDE 编译还是从命令行编译?如果您是从 IDE 编译,我会从命令行测试编译,看看是否有什么不同。
  • 在 290 个 .dproj 文件中。只有一个编译为 .EXE,其余为 .BPL。 BPL 之间存在关系。

标签: delphi compilation


【解决方案1】:

您已经确定您的构建过程不受 I/O 限制,因此使用 RAID 或更好的处理器并没有真正的帮助。如果您的构建在顺序方面没有依赖关系,您可以在 Delphi 中编写一个实用程序,在一系列线程中执行命令行构建。这应该允许您将负载分散到所有 CPU 内核上。一个简单的生产者消费者队列结构和一系列工作线程应该可以很好地完成这项工作。

【讨论】:

  • 不过,用脚本语言更容易做到这一点。为工作使用正确的工具。
猜你喜欢
  • 1970-01-01
  • 2014-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-02
相关资源
最近更新 更多