【C#】CPU监控

该博客介绍了如何使用C#查询CPU最近的使用情况,包括平均使用率、最高使用率和高于特定值的占比。作者封装了一个方法,通过每隔5秒对CPU使用率打点并保存最近一小时的数据,利用读写锁确保数据正确性。文章提供了包含示例代码的项目源码下载方式。
摘要由CSDN通过智能技术生成

查询CPU最近一段时间的使用情况

  1. 查询最近几分钟CPU的平局使用率
  2. 查询最近几分钟CPU的最高使用率
  3. 查询最近几分钟CPU使用率高于某一值得占比

我将这三个方法封装了一个CpuUsageHelper方法,方便使用。
使用PerformanceCounter 对CPU的使用率每隔5秒进行打点,并维护一个LinkedList存储最近一个小时的CPU打点,使用了ReaderWriterLockSlim读写锁保护数据的正确性。

下图是一个使用Demo:
右键图片另存为之后将后缀改为.zip解压可获得项目源码
(源码获取方式:右键图片另存为之后将后缀改为.zip解压即可获得项目源码)

CpuUsageHelper 类如下:

public static class CpuUsageHelper
{

    private const int SampleRate = 5 * 1000; // 5 second
    private const int CpuUsageListMaxCapacity = 1 * 60 * 60 * 1000 / SampleRate; // 1 hous capacity.


    private static Timer _sampleTimer = null;
    private static readonly PerformanceCounter _cpuCounter = new PerformanceCounter("Processor", "% Processor Time", "_Total");

    private static readonly LinkedList<float> _cpuUsageList = new LinkedList<float>();
    private static 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值