我在 Windows 10 中创建了一个 PowerShell 脚本,用于在系统托盘中显示一个图标,并根据 Caps Lock 是否打开来更改图标。 (我的键盘没有大写锁定指示灯)。 该脚本非常简单(就像我一样),但涉及无限循环,因此它会不断检查。
当我使用以下行确定循环间隔时,PowerShell 实例使用 16% CPU 且根据任务管理器显示“非常高”的电源使用率:
Start-Sleep -Seconds 0.5
但是,当我使用以下行确定循环间隔时,根据任务管理器,PowerShell 实例使用 ~0% 的 CPU 和“非常低”的功耗:
Start-Sleep -Milliseconds 500
尽管时间间隔是相同的。不用说,我会选择第二个选项(我什至将其减少到 200 毫秒,响应更好,但仍然没有问题)。
我想知道,有谁知道为什么使用“秒”的分数会导致 CPU 使用率急剧增加? (我猜测相对较高的 CPU 使用率是“非常高”功耗的来源)。
我想可能是因为CPU正在转换数据类型,虽然对我来说仍然有点极端,所以我尝试了:
Start-Sleep -Seconds 1.5
根据任务管理器,这导致大约 0% 的 CPU 和“非常低”的功耗......
有什么想法吗?
我不确定为什么在 Start-Sleep 中使用几分之一秒会导致 CPU 使用率急剧增加。不过,我有一些理论:
这里是类似问题的链接