在开发高性能的 C# 应用程序时,了解系统资源(如 CPU、内存、磁盘 I/O 等)的使用情况至关重要。Windows 提供了强大的 性能计数器(Performance Counter) 功能,而 .NET 框架通过 System.Diagnostics.PerformanceCounter 类让我们可以轻松访问这些数据。本教程将带你从零开始,使用 C# 实现对系统性能的实时监控,即使是编程新手也能轻松上手!
性能计数器是 Windows 操作系统提供的一组指标,用于衡量系统或应用程序的运行状态。例如:
首先,确保你的项目中已包含以下命名空间:
using System;using System.Diagnostics;using System.Threading; 以监控 CPU 使用率为例,我们创建一个 PerformanceCounter 对象:
// 监控整个系统的 CPU 使用率PerformanceCounter cpuCounter = new PerformanceCounter( "Processor", // 性能对象类别 "% Processor Time", // 计数器名称 "_Total" // 实例名称(_Total 表示所有 CPU 核心总和)); 注意:第一次调用 NextValue() 通常返回 0 或无效值,因为需要两个采样点才能计算出有效结果。因此,我们先调用一次并等待一小段时间:
cpuCounter.NextValue(); // 初始化Thread.Sleep(1000); // 等待 1 秒 现在我们可以持续读取 CPU 使用率,并打印到控制台:
while (true){ float cpuUsage = cpuCounter.NextValue(); Console.WriteLine($"当前 CPU 使用率: {cpuUsage:F2}%"); Thread.Sleep(2000); // 每 2 秒更新一次} 下面是一个完整的控制台应用程序,同时监控 CPU 和内存使用情况:
using System;using System.Diagnostics;using System.Threading;class Program{ static void Main() { // 创建 CPU 和内存计数器 var cpuCounter = new PerformanceCounter("Processor", "% Processor Time", "_Total"); var ramCounter = new PerformanceCounter("Memory", "Available MBytes"); // 初始化 cpuCounter.NextValue(); ramCounter.NextValue(); Thread.Sleep(1000); Console.WriteLine("开始实时监控系统性能...\n"); while (true) { float cpu = cpuCounter.NextValue(); float ram = ramCounter.NextValue(); Console.Clear(); Console.WriteLine($"【C#性能计数器实时监控】"); Console.WriteLine($"CPU 使用率: {cpu:F2}%"); Console.WriteLine($"可用内存: {ram:F0} MB"); Console.WriteLine("\n按 Ctrl+C 停止监控..."); Thread.Sleep(2000); } }} PerformanceCounterCategory.GetCategories() 动态获取类别名称。通过本教程,你已经掌握了如何使用 C# 的 PerformanceCounter 类进行实时监控性能。这项技能不仅适用于系统监控工具开发,还能帮助你在调试高性能应用时快速定位瓶颈。记住,C#系统监控的核心在于理解性能计数器的工作原理并合理采样。希望这篇 PerformanceCounter教程 能为你打开系统级编程的大门!
关键词:C#性能计数器, 实时监控性能, C#系统监控, PerformanceCounter教程
本文由主机测评网于2025-12-16发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/2025128750.html