我正在从事一个收集有关性能数据的项目,就像性能监视器一样。
但是,当我在页面/秒上运行监视器时,它给出的结果与性能监视器不同。我认为这是因为性能计数器没有给出所有小数,并且平均计算变得不准确。
我的代码更新:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.Threading;
using System.Net;
using System.Management;
using System.Net.NetworkInformation;
namespace PerformanceMonitor
{
class Program
{
static void Main(string[] args)
{
List<float> pagesSec = new List<float>();
PerformanceCounter memoryPages = new PerformanceCounter("Memory", "Pages/sec");
while (count < 50)
{
pagesSecValue = memoryPages.NextValue();
pagesSec.Add(pagesSecValue);
Console.WriteLine("Pages: " + pagesSecValue);
count++;
Thread.Sleep(1000);
Console.Clear();
}
Console.WriteLine("Avg pages/sec: " + pagesSec.Average());
Console.ReadLine();
}
}
}
在运行程序时,大多数时候我在控制台上打印 0。
结果:我的程序:4,06349 Windows 性能监视器:12,133
为什么有区别?