C#性能计数器可能的参数列表
本文关键字:参数 列表 性能计数器 | 更新日期: 2023-09-27 18:00:58
我使用的是System.Data PerfomanceCounter
类,我发现了一些关于如何检索磁盘空间或CPU使用情况的非常具体的示例。
但是,我找不到关于可能值的文档
PerfomanceCounter.CategoryName
PerformanceCounter.CounterName
PerformanceCounter.InstanceName
我可以从类中看到我可以传递给构造函数的不同参数,但即使转到例如CategoryName的页面也不会给我可用值的列表。
有人能就如何找到这些产品的可用价值提供建议吗?
谢谢!
这些可以从PerformanceCounterCategory
类获得:
PerformanceCounterCategory[] categories = PerformanceCounterCategory.GetCategories();
foreach(var category in categories)
{
string[] instanceNames = category.GetInstanceNames();
foreach(string instanceName in instanceNames)
PerformanceCounter[] counters = category.GetCounters(instanceName);
}
这里有一些代码可以修改以获得您想要的计数器(有太多的计数器无法发布(。
将输出所有类别,但计数器将仅输出所需类别。
private static void PrintPerformanceCounterParameters()
{
var sb = new StringBuilder();
PerformanceCounterCategory[] categories = PerformanceCounterCategory.GetCategories();
var desiredCategories = new HashSet<string> {"Process", "Memory"};
foreach (var category in categories)
{
sb.AppendLine("Category: " + category.CategoryName);
if (desiredCategories.Contains(category.CategoryName))
{
PerformanceCounter[] counters;
try
{
counters = category.GetCounters("devenv");
}
catch (Exception)
{
counters = category.GetCounters();
}
foreach (var counter in counters)
{
sb.AppendLine(counter.CounterName + ": " + counter.CounterHelp);
}
}
}
File.WriteAllText(@"C:'performanceCounters.txt", sb.ToString());
}
您可以通过搜索类别+"对象"在Microsoft页面上找到它们。例如,对于内存进程对象,它应该是这样的:"performance counters process object"
。https://msdn.microsoft.com/en-us/library/ms804621.aspx