当前位置: 首页 > 编程语言 > C#

列出类别共享的所有性能计数器

时间:2023-04-11 10:36:40 C#

列出类别的所有性能计数器System.Diagnostics中是否有内置方法用于检索给定类别名称的所有实例化性能计数器?我们有许多使用自定义性能计数器的多线程应用程序,现在需要添加一个仪表板来显示性能统计信息。我想以这样一种方式制作仪表板,即每当有人在新代码中添加新计数器时,它都不需要更新。试试这个:publicvoidListCounters(stringcategoryName){PerformanceCounterCategorycategory=PerformanceCounterCategory.GetCategories().First(c=>c.CategoryName==categoryName);Console.WriteLine("{0}[{1}]",category.CategoryName,category.CategoryType);string[]instanceNames=category.GetInstanceNames();if(instanceNames.Length>0){//多实例类别foreach(stringinstanceNameininstanceNames){ListInstances(category,instanceName);}}else{//SingleInstance类别ListInstances(category,string.Empty);}}privatestaticvoidListInstances(PerformanceCounterCategorycategory,stringinstanceName){Console.WriteLine("{0}",instanceName);PerformanceCounter[]counters=category.GetCounters(instanceName);foreach(计数器中的PerformanceCounter计数器){Console.WriteLine("{0}",counter.CounterName);你必须知道可以有多个实例的类,并以不同的方式处理它们。只是为了好玩...这里的linq行是一样的:上面是C#教程:列出该类别的所有性能计数器分享所有内容,如果对大家有用需要进一步了解C#教程,希望大家多多关注—PerformanceCounterCategory.GetCategories().Where(cat=>cat.CategoryName=="ASP.NETv4.0.30319").Select(cat=>cat.GetInstanceNames().Any()?cat.GetInstanceNames().Select(i=>cat.GetCounters(i)).SelectMany(counter=>counter):cat.GetCounters("")).SelectMany(counter=>counter).Select(counter=>计数器)string.Format("{0}:{1}.{2}",counter.InstanceName,counter.CategoryName,counter.CounterName))本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:

最新推荐
猜你喜欢