gpt4 book ai didi

c# - 以独立于语言的方式检索性能计数器值

转载 作者:可可西里 更新时间:2023-11-01 12:43:33 25 4
gpt4 key购买 nike

在 Windows 下,性能计数器具有不同的名称,具体取决于操作系统语言。例如,在英文版 Windows 上,有性能计数器 \Processor(_Total)\% Processor Time。同一计数器在德语 Windows 版本上称为 \Prozessor(_Total)\Prozessorzeit (%)

有没有什么方法可以以独立于语言的方式(使用 C++ 或 C#)检索性能计数器值?或者是否有替代方法可以在没有性能计数器的情况下获取整台计算机的处理器负载?

最佳答案

每个 PerfMon 计数器都被赋予一个唯一的(每台机器)整数 ID 以标识 PerfMon 计数器(但是在标准计数器的情况下,此 ID 保证保持不变)。

将 PerfMon 计数器 ID 与其美国英文名称和本地化名称相关联的信息存储在注册表中的以下键中:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib

一旦您使用注册表获取了 PerfMon 计数器名称(您可以将其作为标准计数器的常量嵌入到您的应用程序中),您可以使用 PdhLookupPerfNameByIndex查找给定计数器 ID 的本地化名称的函数。

参见 Using PDH APIs correctly in a localized language (Microsoft KB)了解更多详情。

您可能还会找到 Finding perfmon counter id via winreg (StackOverflow)有点相关。

关于c# - 以独立于语言的方式检索性能计数器值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5581859/

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