首先,PerformanceCounter 分为各个category, 每个category 对应不同类型的资源,一般有"Processor", "IPv6",什么的。。。下面有一个所有的类型的列表:

view plain

Thread

RAS Total

TCPv6

TCPv4

Paging File

SQLServer:Latches

IPsec AuthIP IPv4

MSDTC Bridge 4.0.0.0

IPsec AuthIP IPv6

.NET CLR Data

WF (System.Workflow) 4.0.0.0

Synchronization

Processor

Security Per-Process Statistics

MSDTC Bridge 3.0.0.0

Generic IKEv1, AuthIP, and IKEv2

Database ==> TableClasses

Event Tracing for Windows Session

ASP.NET v4.0.30319

.NET CLR Networking

Objects

Terminal Services

BITS Net Utilization

SQLServer:User Settable

.NET CLR Exceptions

IPsec IKEv2 IPv6

Process

IPsec IKEv2 IPv4

SQLServer:Broker Activation

WFPv6

SQLServer:Database Mirroring

Search Gatherer

Teredo Relay

IPv4

SQLServer:Cursor Manager Total

IPv6

Job Object Details

WFPv4

IPHTTPS Global

ICMP

Offline Files

SQLServer:Cursor Manager by Type

SQLAgent:JobSteps

PhysicalDisk

Search Indexer

Windows Workflow Foundation

Teredo Server

ServiceModelService 3.0.0.0

Processor Information

SQLServer:Replication Logreader

SQLServer:Transactions

ASP.NET Apps v4.0.30319

SQLServer:Broker TO Statistics

SQLServer:Deprecated Features

Per Processor Network Interface Card Activity

Database

Browser

.NET CLR Remoting

Pacer Pipe

Event Tracing for Windows

.NET CLR LocksAndThreads

Job Object

Client Side Caching

.NET Data Provider for SqlServer

ASP.NET Applications

Terminal Services Session

SQLServer:Broker/DBM Transport

Network Interface

.NET Memory Cache 4.0

SQLServer:General Statistics

SQLServer:Resource Pool Stats

SQLServer:Replication Merge

Security System-Wide Statistics

SQLServer:Backup Device

UDPv6

.NET CLR Security

Outlook

.NET CLR Jit

SQLServer:Workload Group Stats

WFP

ASP.NET State Service

SMSvcHost 4.0.0.0

SQLServer:Databases

SQLServer:Locks

Server Work Queues

ICMPv6

NBT Connection

.NET CLR Loading

Server

SQLAgent:Jobs

RAS Port

Per Processor Network Activity Cycles

SMSvcHost 3.0.0.0

ServiceModelEndpoint 3.0.0.0

.NET CLR Networking 4.0.0.0

ASP.NET

USB

SQLServer:Memory Manager

Cache

SQLServer:Replication Snapshot

System

Redirector

SQLServer:Wait Statistics

SQLAgent:Statistics

LogicalDisk

.NET Data Provider for Oracle

.NET CLR Interop

分布式事务处理协调器

WMI Objects

.NET CLR Memory

SQLServer:Access Methods

SQLServer:Buffer Partition

SQLServer:Buffer Manager

Database ==> Instances

ReadyBoost Cache

SQLServer:Plan Cache

SQLServer:Replication Agents

SQLServer:Exec Statistics

Teredo Client

Telephony

IPsec IKEv1 IPv6

Memory

SQLServer:SQL Errors

SQLServer:Replication Dist.

ServiceModelOperation 3.0.0.0

SQLServer:Buffer Node

IPsec IKEv1 IPv4

Search Gatherer Projects

IPsec Driver

SQLServer:Broker Statistics

SQLServer:SQL Statistics

SQLServer:CLR

SQLAgent:Alerts

UDPv4

SQLServer:Catalog Metadata

然后,每个类型下面对应多个实例,例如通过如下代码获得Processor的实例:

view plainusing System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; namespace PerformanceCounterTest { class Program { static void Main(string[] args) { PerformanceCounterCategory[] pcc = PerformanceCounterCategory.GetCategories(); for (int i = 0; i < pcc.Length; i++) { if (pcc[i].CategoryName=="Processor") { Console.WriteLine("-----------------------------------"); Console.WriteLine(pcc[i].CategoryName); Console.WriteLine("-----------------------------------"); //Console.WriteLine(pcc[i].MachineName); string[] instanceNames = pcc[i].GetInstanceNames(); for (int j = 0; j < instanceNames.Length; j++) { Console.WriteLine("**** Instance Name **********"); Console.WriteLine(instanceNames[j]); //PerformanceCounter[] counters = pcc[i].GetCounters(instanceNames[j]); //Console.WriteLine("**************************************************"); //Console.WriteLine("* counter name * "); //for (int k = 0; k < counters.Length; k++) //{ //    Console.WriteLine(counters[k].CounterName); //} } } } } } } 

输出结果为:

view plain

-----------------------------------

Processor

-----------------------------------

**** Instance Name **********

_Total

**** Instance Name **********

0

**** Instance Name **********

1

请按任意键继续. . .

在每个实例中,又对应多个计数器,这样就需要选择你需要的计数器了。

获得的Processor类别的_Total 实例,看看这个实例都包含什么计数器,上面代码注释的部门包括计数器的输出,结果为:

view plain

-----------------------------------

Processor

-----------------------------------

**** Instance Name **********

_Total

**************************************************

* counter name *

% Processor Time

% User Time

% Privileged Time

Interrupts/sec

% DPC Time

% Interrupt Time

DPCs Queued/sec

DPC Rate

% Idle Time

% C1 Time

% C2 Time

% C3 Time

C1 Transitions/sec

C2 Transitions/sec

C3 Transitions/sec

**** Instance Name **********

0

**************************************************

* counter name *

% Processor Time

% User Time

% Privileged Time

Interrupts/sec

% DPC Time

% Interrupt Time

DPCs Queued/sec

DPC Rate

% Idle Time

% C1 Time

% C2 Time

% C3 Time

C1 Transitions/sec

C2 Transitions/sec

C3 Transitions/sec

**** Instance Name **********

1

**************************************************

* counter name *

% Processor Time

% User Time

% Privileged Time

Interrupts/sec

% DPC Time

% Interrupt Time

DPCs Queued/sec

DPC Rate

% Idle Time

% C1 Time

% C2 Time

% C3 Time

C1 Transitions/sec

C2 Transitions/sec

C3 Transitions/sec

请按任意键继续. . .

这样,在使用PerformanceCounter  的时候需要指定类别,实例名,计数器名。

view plain

PerformanceCounter pc1 = new PerformanceCounter("Processor","% Processor Time","_Total");

然后通过pc1.NextValue() 获得相关计数器的值就可以了

PerformanceCounter详解,使用方法相关推荐

  1. [深入浅出Cocoa]之消息(二)-详解动态方法决议(Dynamic Method Resolution)

    [深入浅出Cocoa]之消息(二)-详解动态方法决议(Dynamic Method Resolution) 罗朝辉 (http://www.cnblogs.com/kesalin/) 本文遵循&quo ...

  2. Java网络编程 Socket、ServerSocket 详解,方法介绍及完整代码示例

    Java网络编程 Socket.ServerSocket 详解,方法介绍及完整代码示例 概念 什么是网络编程? 网络编程是指编写运行在多个设备(计算机)的程序,这些设备通过网络连接起来.当这些通过网络 ...

  3. Swoole WebSocket服务使用Task任务详解 (面向对象方法)

    Swoole WebSocket服务使用Task任务详解 (面向对象方法) 作者: 绝爱七八丶 博客: https://blog.csdn.net/qq_40193451 日期: 2018.8.24 ...

  4. smali语言详解之方法的调用

    smali语言详解之方法的调用 一.方法调用关键字介绍 smali语言方法调用关键字主要有以下五种 invoke-virtual主要用于非私有实例方法的调用.实例方法指不是构造方法.父类方法等的属于这 ...

  5. 【数据结构】共享栈详解 判断共享栈满条件栈顶指针变化详解记忆方法例题

    摘要:简单易懂,详细地介绍共享栈概念,指针,判断共享栈栈满条件以及记忆方法等 目录 共享栈概念 栈顶指针&变化详解 栈顶指针种类的记忆方法 判断栈满条件 判断栈满条件的记忆方法 例题 解题思路 ...

  6. Day13-Java方法详解,方法的定义、重载,命令行传参,可变参数与递归

    Java方法详解 什么是方法? Java的方法是语句的集合,他们在一起执行一个功能 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法再程序中被创建,在其他地方被引用 [方法原子性]一个方 ...

  7. 面向对象 详解笔记 方法 类 对象 封装 继承 重写 多态 接口

    文章目录 面向过程&面向对象 面向过程 面向对象 什么是面向对象 回顾方法及加深 方法的定义 修饰符 返回类型 break:跳出switch,结束循环和return的区别 方法名:注意规范就o ...

  8. PerformanceCounter 详解,使用方法

    这两天写代码控制CPU的占用率,显示为一条直线或者曲线,显示为一条直线的时候用到了PerformanceCounter 这个类. 由于对这个类还是很感兴趣的,在网上找了一些资料也不是很清楚.就自己研究 ...

  9. 详解java方法与递归

    目录 一 方法(类似于C语言中的函数) 1 方法的基本语法: 2 注意事项 3 方法调用的执行过程 4 方法的重载 重载的规则(满足以下三个特点): 5 方法的意义 二 递归 前提条件: 概念: 递归 ...

最新文章

  1. linux修改selinux
  2. cocob optimizer让学习率不再是算法参数
  3. Oracle_9i常用管理命令
  4. elasticsearch新增_SpringBoot 使用JestClient操作Elasticsearch
  5. [转]一阶自回归模型和二阶自回归模型
  6. 有人培训设计模式,吾表示难以理解,因为根本没用
  7. 计算机手机共享上网,上网教程_电脑wifi怎么实现手机共享上网 - 驱动管家
  8. 华为HG8245光纤猫获得超级用户密码
  9. UPC 6615 Snuke Festival
  10. oracle append作用分析
  11. 互联网之子——亚伦·斯沃茨:新时代网络自由的先驱
  12. 创建一个最简单的win32应用程序
  13. arch linux yaourt arm,在ARM設備(樹莓派、香蕉派)上為Arch Linux配置yaourt
  14. 怎么下载老版本android,剪映旧版下载
  15. autojs之多线程-Threads
  16. 图书详细信息接口调用代码实现
  17. Chrony与NTP对比
  18. 恒星结构和演化-学习记录2-第三章-物态方程1
  19. 数字证书的原理===阿冬专栏
  20. 【历史上的今天】2 月 14 日:第一台通用计算机面世;IBM 诞生;Julia 公开发布

热门文章

  1. 不涉及代码,来聊聊用户画像
  2. 腾讯天气的API接口
  3. 你还不知道Spring cloud是干什么的,那你就out了
  4. 大学宿舍无线覆盖解决方案
  5. java的无参构造函数_Java 无参数构造函数的应用
  6. C语言中#include < stdio.h >的意思
  7. win安装doccano_支持多语言的文本标注工具——doccano
  8. mysql如何替换字符串中换行符及回车符
  9. 机器学习中的编码:Index编码、OneHot编码和Multiple编码及其对比
  10. python one hot编码_对python sklearn one-hot编码详解