Delphi 7编译时间是否会随着时间变慢?

4

我的项目大约有400个单元,第一次重新启动后编译需要20-40秒,然后再次编译只需要1-5秒,目前还好。

工作了3-6个小时后,重新编译需要1-3分钟,这迫使我每次都要重新启动。

在D7中是否存在泄漏问题?这是Windows XP的问题吗?这让人非常沮丧...

有人遇到过这个问题吗?

编辑1 DelphiSpeedup似乎不能解决这个问题,它仍然存在...


Delphi XE仍然存在这个漏洞。 - Gabriel
10个回答

6

早期版本的Delphi编译在IDE中存在已知的性能问题(与命令行相比),包括大量不必要的文件访问。

Delphi Speedup 修复了IDE中的一些问题,包括编译、链接和Map文件创建方面的改进。它可能有助于您的情况。


2
我发现对单元的使用条款进行优化有助于提高编译速度。在可能的情况下,在一些特定的情况下删除对其他单元的引用,例如unit1在其接口部分使用unit2,而unit2在其实现部分使用unit1。

有一个很好的免费使用条款分析器可以指出不必要的使用引用,网址是http://www.peganza.com/products_icarus.htm

1

关闭编译器提示和消息可以显著提高速度。

项目 > 选项 编译器消息 取消勾选“显示提示”和“显示消息”。


1

1
当Delphi编译开始变慢时,看一下内存使用情况。通常来说,IDE中的一些东西会泄漏(我个人最喜欢的罪魁祸首是“在文件中查找”和“CodeRush搜索”),工作几个小时后,你可能会发现分配了足够多的内存,真正开始拖慢速度。

1
如果在安装DelphiSpeedup之后问题仍然存在,请尝试删除任何第三方IDE插件并查看是否有所帮助。
您还可以检查一下您的库路径是否存在或位于映射/网络驱动器上。这些会减慢编译速度,但我不确定它们是否会导致编译时间变慢。

1

我也注意到了这一点,它似乎直接与关闭Delphi时出现的异常数量有关。通常情况下,我不需要重新启动计算机就可以恢复速度。

我的建议是进入环境选项并打开自动保存选项,这样您就可以重新启动Delphi而不需要花费很长时间来找回您打开的内容。我必须这样做,因为我的调试器似乎只能工作一个小时左右。


0
有一件事对我很有用,那就是删除所有被遗忘的断点。进入"视图 > 调试窗口 > 断点"(也可以使用Ctrl+Alt+B快捷键),然后将它们全部删除。在我的情况下,编译过程的时间从30秒减少到1秒。
实际上,编译并不是问题所在,而是程序运行的时间(从运行到看到主窗体的时间)。

0

这个问题类似于那个。避免循环引用会有很大帮助。 如上所述,DelphiSpeedUp也是有帮助的。


0

哇,Delphi SpeedUp非常令人印象深刻,测试结果如下:

项目完整构建:

之前:1分15秒

之后:45秒

编译项目(没有更改源代码,只是打开项目并编译)

之前:1分钟

之后:20秒


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