我有一些大型(~600k 行代码)Delphi 项目。它们包括我们团队开发的一些自定义组件。
通常,当我使用 ctrl+space 或仅按“.”调用代码完成时,IDE 会锁定并思考很长时间。有时延迟可能会长达一分钟或更长时间。其他时候,它会立即弹出建议。
哪些因素影响 Delphi 中智能感知的性能?有什么办法可以提高这个性能吗?
到目前为止,我最好的解决方案是关闭自动完成,并在需要安静冥想一分钟左右时使用 ctrl+space。
我忍不住要提一下,VS2005、VS2008 和 XCode 似乎都能提供几乎即时的智能感知反馈(尽管我从未在这么大的项目上尝试过)。
作为替代方案,I've offered this suggestion .
最佳答案
当用户请求 Code Insight(Ctrl+Space、“.”等)时,Delphi Code Insight 会调用编译器 dll 进行自定义编译。此自定义编译在单元中进行构建,并跳过代码生成、链接等,直到达到文件缓冲区中的当前偏移量。考虑到这一点,编译器在到达当前位置之前看到的单元列表将在确定 Code Insight 操作的速度方面发挥重要作用。可能有一个单元(或多个单元)导致严重的文件系统依赖性等。很有可能重新排序uses子句,将uses子句重构为多个文件,或者删除uses子句中不存在的单元。您当前的单元不需要进行编译可能会提高性能。此外,使用包或缩短单元搜索路径可能会缩短 CI 响应时间。
关于Delphi代码完成性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/898327/