【问题标题】:CPU overheating because of Delphi IDE由于 Delphi IDE 导致 CPU 过热
【发布时间】:2010-05-06 15:32:27
【问题描述】:

我使用的是 Delphi 7,但我试用了 Delphi 2005 - 2010 版本。

在所有这些新版本中,当 Delphi IDE 在屏幕上可见时,我的 CPU 利用率为 50%(一个核心为 100%,另一个为“松弛”)。将 IDE 最小化时不会发生这种情况。我的电脑因此而过热。

任何提示为什么会发生这种情况?看来如果我想升级到 Delphi 2010,我需要先升级我的冷却系统。而且我对此有点懒惰,尤其是我想卸下我的电脑并购买一台新电脑(在接下来的 6 个月内) - 可能我也必须购买 Win 7 许可证。


更新
Delphi XE 和 XE7 也受到这个 bug 的困扰。


下面的解决方案!

【问题讨论】:

  • 你有什么类型的CPU?也许你的电脑很烂。
  • 好吧,我想警告您,如果您的计算机无法在不过热的情况下支持 100% 负载而您的计算机只有 50%,那么它就不是很可靠!导致这种情况的常见问题是系统中的导热膏和灰尘不足或过多。我建议您尝试使用压缩空气去除灰尘,如果仍然太热,请更换导热膏,我推荐 OCZ Freeze。它也达到了多少温度以及什么处理器?
  • 不管“过热”是指冒烟、着火还是“听起来像喷气式飞机起飞”,这里的问题都不是冷却、宠物毛发等。Delphi IDE 不应使用 100 % CPU 长时间。所以让我们帮助他找出问题所在。
  • @Altar:要查看您的 CPU 型号,请按 Win+Pause。
  • OP的结论在很多层面上都是可怕的......

标签: delphi


【解决方案1】:

解决方案

100% CPU 使用率问题是由 Delphi 按钮(在 Delphi 的工具栏中)引起的!
我喜欢在新的全屏和旧的类似 Delphi-7 的 IDE 之间切换。有一个名为“停靠编辑窗口”的按钮可以执行此操作。每次安装新版本的 Delphi 时,我都会配置 IDE 的外观并将该按钮放在工具栏中方便的位置。删除按钮后,一切正常。

结论,不要把这个按钮放在你的 IDE 工具栏上。


2010 年更新
当我在 IDE 中打开 DPR 文件时,我发现了类似的问题。 但是,没有解决方案。

2011 年更新
另一个类似的 Delphi 错误(@Warren P 提供的解决方案) Delphi XE takes one full core (100% CPU utilization)

2015 年更新
我找到了导致上述问题的按钮(编辑 DPR 文件时 CPU 使用率为 100%)- 它是“使用单位”按钮。

【讨论】:

  • 我想确认一下,我在使用 Delphi 2007 时也遇到了这个问题,一旦我从工具栏中删除了按钮,问题就消失了。
【解决方案2】:

..这是 Delphi Action 的工作方式。一些“按钮”使用 Action 来监视事物,如果空闲事件上的 Action 执行一些代码,这会不断发生占用 CPU 使用率,就像您在无限循环中执行代码一样。除了您说的,您无能为力,不要使用它按钮。

【讨论】:

    【解决方案3】:

    我想第一步是尝试确定 delphi 的哪个部分占用了 100%。是主线程还是辅助线程?如果您设法确定哪个线程占用了所有 CPU 功率,我想您可以调试 IDE(从 delphi 的第二个实例附加到进程,可以是 D7,因此您不会有 2 个应用程序淹没您的 CPU),然后进入“违规”线程。运气好的话,执行的代码可能有一些调试信息,指示正在做什么。

    如果您安装了任何 3rd 方/Home 组件,请尝试删除它们。

    如前所述,尝试禁用代码洞察。

    尝试禁用任何正在运行的防病毒软件。 (也许是某种活锁)

    我现在能想到的就这些了……

    【讨论】:

    • hmmm... 我猜这个评论是为了 Hola 的回答 ^_^
    【解决方案4】:

    这是代码洞察或其他 IDE 功能,在后台编译内容。 D2005进入“僵尸”模式半分钟左右并淹没我的一个核心是很正常的。不过在 D2010 中似乎要好得多。尝试关闭 IDE 小工具(代码完成、代码参数、提示、错误洞察等),看看是否能让事情平静下来。如果是这样,请一次将它们重新打开,看看你发现了什么。

    【讨论】:

    • 我认为在得出结论之前找出他的处理器很重要。如果他有一个 Pentium 4 1.4GHZ 那就可以解释了。
    • ...或主频为 600 MHz 的赛扬。
    • @Andreas Rejbrand 他说cores,这意味着他要么将奔腾 4 中的逻辑核心与超线程混合在一起,要么他实际上有一个双核心。所以它不可能是赛隆。
    • @Jonathan:我没看到...对不起!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-19
    • 2013-04-04
    相关资源
    最近更新 更多