gpt4 book ai didi

windows - 如何在 PowerShell 中获取 CPU 功耗?

转载 作者:可可西里 更新时间:2023-11-01 09:57:35 30 4
gpt4 key购买 nike

有没有办法用PS获取CPU功耗? Open Hardware Monitor显然有办法返回该数字,但我无法在 OHM's source 中找到相关代码.

最佳答案

我在存储库中搜索“温度”并找到了这个示例:https://github.com/openhardwaremonitor/openhardwaremonitor/blob/da432ef07cf125c019afd3a27f447da428404611/Hardware/LPC/W836XX.cs

它似乎需要特定于设备的类,例如用于 HP 和 Fujitsu 系统的 OpenHardwareMonitor.Hardware.LPC.W836XX 或用于例如,许多显卡使用的 F75375 芯片。这些类知道数据可访问的 IO 端口和内存地址,因此 Windows(或 PowerShell)中没有标准 API 所有设备都将其硬件统计信息放在:所以这种情况非常相似在 DirectSound 和 OpenAL 之前的 1990 年代初期,PC 声卡的情况如何。

读取原始数据是通过此文件 ( https://github.com/openhardwaremonitor/openhardwaremonitor/blob/da432ef07cf125c019afd3a27f447da428404611/Hardware/Ring0.cs ) 中的代码完成的,它似乎将硬件驱动程序加载到操作系统中,然后使用 IOCtrl (DeviceIOControl) 与其交换消息。

驱动程序 WinRing0.sys 的源代码位于同一存储库中,位于以下位置:https://github.com/openhardwaremonitor/openhardwaremonitor/tree/master/External/WinRing0

至于您的实际问题:如果您使用 PowerShell 的能力直接与 .NET 对象交互,您可以通过 PowerShell 获取您想要的数据 - 您只需直接从 PowerShell 中调用 OpenHardwareMonitor 的类方法,但您需要运行具有提升权限的 PowerShell,因此 OpenHardwareMonitor 代码可以安装 Ring0 驱动程序,使其能够读取每个芯片的值。

一个更好的想法可能是编写一个 Windows 服务,通过非管理员 PowerShell 实例可以从中读取的一些共享管道公开此数据。

对于 CPU 功耗,在 Hardware/CPU 下,然后为系统中的 CPU 选择正确的类别。对于 IntelCPU,请查看 MSR_RAPL_POWER_UNIT 的使用。

关于windows - 如何在 PowerShell 中获取 CPU 功耗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49202065/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com