Delphi编译时间过慢问题

6
我的工作项目出现了一个奇怪的问题。它是用Delphi编写的。当我尝试编译它时,需要大约8个小时才能编译约770,000行(而且还没有结束),而我的同事只需要15-20秒。我已经尝试了Why does Delphi's compilation speed degrade the longer it's open, and what can I do about it?中提到的所有方法:
  1. 缩短项目路径
  2. 使用MyDefrag碎片整理
  3. 使用Clear Unit Cache(不确定是否有效)
    我也关闭了优化并使用调试模式。我的电脑相当快(i5-2310 3.1 GHz,16 Gb RAM,常规SATA硬盘),瓶颈可能是硬盘,但我的同事也有普通的硬盘。因此,非常神秘,缓慢编译的原因是什么。
编辑: 我很抱歉缺乏信息。以下是附加信息:
  1. 我使用调试模式,发布模式也可以正常工作。
  2. 我们使用的是Delphi XE版本。
  3. 我最初复制了同事的项目文件夹。
  4. 我没有使用网络驱动器,并尝试将项目移动到另一个硬盘。
  5. 关于系统的其他信息:我使用的是Windows 7 Enterprise N64位,而我的同事使用的是Windows 7 32位。此外,Delphi XE是32位的(不知道是否可以是64位的)。也许这是某种方式的原因?

编辑2:我找到解决方案了!问题在于我在Windows 64位系统上安装了Delphi。在虚拟的Windows 7 x86上安装它使其工作:编译只需几秒钟。不知道为什么性能差距如此之大。


1
你说过“我使用调试模式”。你是指你使用了调试构建配置吗?如果是这样,请尝试使用发布版本。但这只是一个猜测,我无法看到你的构建配置。无论如何,在你的问题中缺少你使用的Delphi版本以及你的构建配置的详细信息。因此,这个问题让我猜测。 - TLama
2
我有几个超过1百万行源代码的 Delphi 项目,但它们中没有一个需要超过一分钟的时间(全部编译)。我的建议是备份您的项目,删除它,并从同事的副本重新安装。如果这样还不起作用,那么您可能已经损坏了 Delphi 配置,并且应该重新安装。不过,有一个想法:您的源文件是否在网络路径上?如果是,请将它们移动到本地驱动器,更改搜索/库路径以指向新位置,然后查看是否可以解决问题。 - Ken White
1
你是否配置了全局IDE搜索或浏览路径,这些路径位于网络驱动器上? - mjn
7
我也曾经见过这种情况。我的项目编译只需要2秒钟,但同事需要约30秒钟。后来发现是他的防病毒程序导致的。我们卸载并重新安装了他的防病毒程序,然后他的电脑开始像我的一样快速地编译。 - James L.
我认为这个项目的问题在于它最初是在32位系统上编写的,而且它使用的所有库也都是32位的。 - Serge Mosin
显示剩余6条评论
1个回答

2

你确定这不是硬件问题吗?例如,你的硬盘是否有坏道?试着把源代码放到另一块硬盘上,看看问题是否消失。或者可能是搜索路径指向一个非常慢或甚至不可用的网络驱动器?


还要检查一下你的dcu和exe文件去了哪里。最近我(不小心)尝试编译到通过VPN访问的驱动器上,这非常慢,即使是一个简单的控制台应用程序。 - Gerry Coll
不,没关系,exe和dcu文件放在同一个目录下。 - Serge Mosin
反病毒软件的想法(詹姆斯发布的)可能是正确的。我也遇到过同样的问题。 - Warren P

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接