delphi - 为什么delphi ide会增加windows平台定时器分辨率?

标签 delphi ide delphi-2010

我注意到每当我打开 delphi 2010 ide 时,我的笔记本电脑的电池生命周期就会明显变差。当我 powercfg/energy trace 时,它​​显示(除其他外)bds.exe 请求的计时器分辨率比默认值 15.6ms 更小。

Current Timer Resolution (100ns units) 10006 
Maximum Timer Period (100ns units) 156250 


Requested Period 10000 
Requesting Process ID 7996 
Requesting Process Path \Device\HarddiskVolume2\Program Files (x86)\Embarcadero\RAD Studio\7.0\bin\bds.exe 

delphi 有充分的理由改变平台计时器分辨率吗?最新版本的 ide 也有相同的行为吗?

最佳答案

IDE 对 ProjectManager、StructureView 和 Log-Window 使用非常旧版本的 VirtualTrees.pas。此版本在其 InitializeGlobalStructures 函数中调用 timeBeginPeriod 并将计时器分辨率设置为最小值 (1)。它在单元的finalization block 中重置。

VirtualTrees 通过此提交更改了此行为:

2013-09-20 21:40:21: No longer changing timer resolution globally (#365)

但是 IDE 仍然使用非常旧的版本,甚至不使用 UnicodeString,而是使用 WideString。因此自 Delphi 2007 以来它就没有更新过。

关于delphi - 为什么delphi ide会增加windows平台定时器分辨率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32337669/

相关文章:

c# - 有没有人使用 C#/Silverlight/WPF 开发过编辑器/ide?

java - 如何在intellij ce的执行maven目标窗口中清除先前 "command line"的列表

c# - 为什么默认情况下不使用 C# "using aliases"?

windows - Windows 启动时启动我的应用程序(所有版本的 Windows)?

delphi - 从 Delphi 2006 迁移到 Delphi XE2

c++ - 从 C++ dll 回调到 delphi 应用程序

delphi - 在 Outlook 中取消删除联系人

multithreading - 如何更改监听器线程优先级

delphi - 如何以编程方式将操作添加到 Delphi 2010 中的操作管理器

xml - 根据 XSD : Undeclared XSD element 验证 XML