我有一些大的(~600k代码行)Delphi项目.它们包括我们团队开发的一些自定义组件.
通常,当我使用ctrl + space调用代码完成或仅按"."时,IDE会锁定并长时间认真思考.有时延迟可能是一分钟或更长时间.其他时候,它会立即弹出建议.
哪些因素会影响Delphi中intellisense的性能?有什么办法可以改善这种表现吗?
到目前为止,我最好的解决方案是关闭自动完成,并在我需要静静地冥想一分钟左右时使用ctrl + space.
我不禁要提到VS2005,VS2008和XCode似乎都提供了几乎即时的智能感知反馈(尽管我从来没有尝试过这么大的项目).
作为替代方案,我提出了这个建议.
当用户请求Code Insight(Ctrl + Space,'.'等)时,Delphi Code Insight调用编译器dll进行自定义编译.这个自定义编译在单元中进行构建,并跳过codegen,链接等,直到它达到文件缓冲区中的当前偏移量.考虑到这一点,编译器在到达当前位置之前看到的单元列表将在确定Code Insight操作的速度时起到很大的作用.可能有一个单元(或多个单元)导致严重的文件系统依赖等.很可能重新排序uses子句,将uses子句重构为多个文件,或者删除uses子句中的单元'您当前单元编译所需的可能会提高性能.此外,使用包或缩短单位搜索路径可能会缩短CI响应时间.
请务必明确包含项目在dpr中使用的所有单位(*).
不要依赖搜索路径来查找从另一个单元调用的单元,将其添加到dpr.dpr会更长,但所有与编译相关的东西都会更快,包括代码洞察力.
(*)不是已安装组件的单位.