Delphi XE采用一个完整内核100%CPU使用率

问题描述

| 我的Delphi开始使CPU过热。一旦我开始使用Delphi,就需要一个完整的内核,并且散热器确实开始工作。有什么技巧可以解决此问题? 我知道如果我同时使用单词“ Delphi”和“ bug”,Stack Overflow上的某些人将开始释放热气,但这是一个非常讨厌的错误,因为它会浪费很多精力(尤其是当电池电量),并且由于过热会导致计算机过早老化。 更新: 仅当活动选项卡是项目(dproj)文件时,才会出现此问题。一旦我切换到另一个文件(pas),CPU就会回到0%-1%。任何dproj文件都会发生这种情况,但是只有在屏幕上显示IDE时才会发生(未最小化到任务栏)。因此,这显然是一个渲染错误。 更新: 看起来沃伦P已找到一种产生类似错误的方法。看到他的答案。 更新: 我已经看到非常大型的PAS单元也会出现该问题,但是在让Delphi IDE窗口在后台(未使用)3-5分钟后,出现了最大CPU使用率。我可以通过最小化任务栏窗口或切换到另一个IDE选项卡来解决此问题。     

解决方法

        我找到了一种非常类似于您的问题的重现问题的方法。创建一个新的delphi项目,并将.def条件添加到.DPR(主项目源)中,该条件包含诸如此类的无法解析的代码...
program IdeTestProject1;
{$ifdef FOO}
bar
{$endif}

uses
  Forms,Unit1 in \'Unit1.pas\' {Form1},Unit2 in \'Unit2.pas\' {Form2},Unit3 in \'Unit3.pas\' {Form3},Unit4 in \'Unit4.pas\' {Form4},Unit5 in \'Unit5.pas\' {Form5},Unit6 in \'Unit6.pas\' {Form6};

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm1,Form1);
  Application.CreateForm(TForm2,Form2);
  Application.CreateForm(TForm3,Form3);
  Application.CreateForm(TForm4,Form4);
  Application.CreateForm(TForm5,Form5);
  Application.CreateForm(TForm6,Form6);
  Application.Run;
end.
因此,我的建议是找到所有条件编译指令和其他复杂语法,包括直接在DPR中的所有函数或代码,然后将其移至另一个单元。代码完成,错误洞察或某些其他功能会不断地重新解析此单元,这会导致性能错误。     ,        尝试删除可能已添加的Delphi IDE的所有插件。尝试查看它是否仅在特定项目或源文件上发生。使用调试器进入Delphi进程,查看调用堆栈是什么。这样,您可能会看到Delphi的哪一部分正在旋转CPU。     ,        我具有“进程监视器”实用程序,并检查了bds.exe操作。我发现有更多的.dcu被处理。 (打开文件,读取文件,关闭文件)。 要修复,我已经删除了所有.dcu     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...