【问题标题】:Delphi XE2 : F12 switching between unit and form intolerably slowDelphi XE2:F12在单位和表格之间切换非常慢
【发布时间】:2012-01-20 11:58:24
【问题描述】:

这个问题困扰了我很长时间,几个月前我直接从 D2007 切换到 XE2,我无法保证这可能是什么时候开始的,但在 D2007 上我没有遇到这个问题。

单位越大,代码更改时使用 F12 在单位和表格之间切换的速度就越慢。即使您取消停靠表单设计器(返回 D7 格式),只要在更改代码时单击返回表单就会导致 BDS.exe 长时间占用 CPU。就我而言,在我最大的表格(30,000 行)上,这可能超过一分钟。我不确定在重新激活表单时会进行什么检查,但如果 IDE 已被“告知”所有内容都是最新的,那么切换就是即时的。因此,我的解决方法是使用 Ctrl+F9 在重新激活表单之前编译表单。编译时间只需几秒钟。然后我可以毫无问题地立即切换到表单。比较一下,如果我在切换之前不编译,我会忍受一分钟或更长时间的等待......

那么,除了减小单元尺寸之外,还有哪些可能性?!

【问题讨论】:

标签: delphi ide delphi-xe2


【解决方案1】:

LiveBindings 设计时包中存在一个会降低 IDE 速度的错误。 CodeCompletion (Ctrl+Space) 和在表单和代码编辑器之间切换非常慢。
如果您不使用 LiveBindings 或想测试它是否真的是 LiveBindings 设计时代码,您可以禁用 Component/Installed Packages... 下的 LiveBinding 包。它们是Embarcadero LiveBindings ComponentsEmbarcadero LiveBindings Components FireMonkeyEmbarcadero LiveBindings Components VCL。如果禁用第一个,其他 2 个将自动卸载。

如果您在项目中使用 LiveBindings,您必须等待更新,或者您可以安装同样修复此错误的 IDE Fix Pack for XE2

【讨论】:

  • 安迪,我做的第一件事就是在任何版本的 Delphi 上安装您的修订包。我已经更新了 4.6.6,但我仍然会遇到这种减速。我还禁用了您提到的实时绑定包。还是一分钟左右的拖累。
  • 在这种情况下,您可以使用 Delphi 启动 Delphi 来调试 IDE。 1. 启动Delphi,然后使用Run/Load Process 启动“$(BDS)\bin\bds.exe”。在第二个 IDE 中,您打开项目并进行设计/代码切换。当第二个 IDE 忙时,您切换到第一个 IDE 并按下 Pause 按钮。双击 Thread-Liste 中的主线程(第一个线程)并查看调用堆栈。这可能会帮助您找到速度变慢的原因。
  • delphicoreide160.@Pasmgr@TPascalScanner@NextToken$qqrv:
  • 对不起,按照您的建议,这些是主线程似乎花费时间的典型区域... delphicoreide160.@Pasmgr@TPascalScanner@CheckDirective$qqrrpc:delphicoreide160.@Pasmgr@TPascalScanner@NextToken $qqrv:@Codemgr@TScanner@GetSourcePos$qqrv:delphicoreide160.@Pasmgr@TPascalCodeManager@ParseClassGroup$qqro:
  • EMBT 应该雇用安迪。说真的。
【解决方案2】:

我在安装修补程序“RAD Studio XE Hotfix for RAID 280864 (QC 88928)”后解决了这个问题。

页面:https://edn.embarcadero.com/article/41312

【讨论】:

  • 我还安装了修补程序“Delphi XE、C++Builder XE 和 RAD Studio XE Hotfix for QC 90864”,以纠正在后台编译操作期间导致的 IDE 挂起
猜你喜欢
  • 1970-01-01
  • 2015-11-18
  • 1970-01-01
  • 2011-11-22
  • 1970-01-01
  • 1970-01-01
  • 2018-04-20
  • 2011-11-25
  • 1970-01-01
相关资源
最近更新 更多