在性能分析中,计数器是一个非常方便快捷获取当前系统和应用状态的工具。了解并查看有哪些计数器非常重要,能让你在分析应用或者系统性能问题的时候不至于手足无措。
这篇文章就来说下,怎么获取所有可用的计数器。
方法一:在 PerfMon 图形界面中查看
1. 打开 PerfMon:
- 通过「开始」菜单搜索
Performance Monitor
或 - 打开「运行」(Win+R),输入
perfmon.msc
并回车。
2. 展开 “监视工具(Performance Monitor)”
在左侧树状列表中,展开 “监视工具(Performance Monitor)”(也有可能是“实时监视(Performance Monitor)”)。
3. 添加计数器(Add Counters)
点击工具栏上方的 “+” 号(Add)以添加计数器。在 “添加计数器(Add Counters)” 对话框中,可在 “可用的计数器(Available counters)” 列表中查看当前系统可以监控的全部对象和计数器名称,按照对象(Object)分类展开后,即可看到对应的所有计数器。还可以勾选上“Show description” 来显示描述信息。
方法二:通过命令行 (typeperf) 导出
Windows 内置的 typeperf
工具可以列出系统中的所有性能计数器。常用方法:
列出所有计数器:
typeperf -qx
该命令会输出系统中的所有计数器(包含对象名称、实例、计数器名称等),结果通常会非常多,可通过重定向到文件进行查看,比如:
typeperf -qx > AllCounters.txt
列出特定对象的计数器:
typeperf -qx | findstr /i "Memory"
通过在输出中查找包含 “Memory” 的行,来快速定位某一类计数器。
方法三:通过 PowerShell 的 Get-Counter
在 PowerShell 中,可以使用 Get-Counter
Cmdlet 来获取性能计数器列表或采样数据。例如:
- 列出所有性能计数器类别:
Get-Counter -ListSet * | Select-Object -ExpandProperty CounterSetName
-
列出特定对象下的所有计数器:
Get-Counter -ListSet "Memory" | Select -ExpandProperty Counter
会列出 “Memory” 对象下的所有可用计数器。
-
查看实时计数器值:
Get-Counter "\Memory\Available MBytes"
总结
简单而言,可以通过图形界面、命令行来获取到所有信息。
如果你是想大致看看,建议直接使用方法一,图形界面查看。
如果你想导出出来,做一些处理(比如,问 AI 在一堆计数器里用哪个的时候),建议采取命令行。
初次之外,还有些方式:
- 通过 WMI
- 通过 PDH APIs
只是相对麻烦一点而已。
一些常见的计数器解析:
0