本篇文章是在上次获取整个系统性能数据的延伸。
需求:获取某个进程(已知进程名)的CPU使用率、内存使用量、磁盘读写速率
实现:通过windows自带的性能计数器中的Process实现
与之前获取整个系统性能数据的流程是一样的,打开性能计数器——添加性能计数器——获取数据。
下面是具体的性能计数器查询语句,"tfb_manage_system"是进程名(tfb_manage_system.exe)。
获取CPU使用率:"\\Process(tfb_manage_system)\\% Processor Time" ps:需要注意一点,这里拿到的数据是对于单核CPU的使用率,所以,对于整个系统的使用率,需要将本数据除以系统CPU核心数量。比如拿到的数据是80%,系统是四核,那该进程真实的CPU占用率是80 / 4 = 20%。
获取内存使用量:"\\Process(tfb_manage_system)\\Working Set - Private" 获取的专用内存使用量。单位是字节
获取磁盘读速率:"\\Process(tfb_manage_system)\\IO Read Bytes/sec" 单位是字节 / 秒
获取磁盘写速率:"\\Process(tfb_manage_system)\\IO Write Bytes/sec" 单位是字节 / 秒
下面是实现代码:
/*
通过性能计数器获取某个进程的CPU使用率、内存使用量、磁盘读写速