0

System.Diagnostics.PerformanceCounterまた、を使用してパフォーマンスカウンターを作成し、 NextValue()メソッドを使用してカウンター値を取得することで、これをプログラムで使用できることも理解しています。

Process p = Process.GetProcessById(10204);
            PerformanceCounter ramCounter = new PerformanceCounter("Process", "Working Set - Private", p.ProcessName);
            PerformanceCounter cpuCounter = new PerformanceCounter("Process", "% User Time", p.ProcessName);
                while (true)
                {
                    Thread.Sleep(1000);
                    double ram = ramCounter.NextValue();
                    double cpu = cpuCounter.NextValue();
                    Console.WriteLine("RAM: " + (ram / 1024 / 1024) + "MB");
                    Console.WriteLine("CPU: " + (cpu) + " %");
                }

私はこのコードをオンラインで見つけました。ここでは、このテストの最後に平均CPUと平均RAMを計算し、Varに保存して、別の変数と比較することに興味があります。素敵なアイデア

ありがとう

4

1 に答える 1

0
using System;
using System.Diagnostics;
using System.Threading;

namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {
            double totalRam = 0.0d;
            double cpu = 0.0d;

            Process p = Process.GetProcessById(1188);
            var ramCounter = new PerformanceCounter("Process", "Working Set - Private", p.ProcessName);
            var cpuCounter = new PerformanceCounter("Process", "% User Time", p.ProcessName);
            int n = 0;
            while (n < 20)
            {
                Thread.Sleep(1000);
                double ram = ramCounter.NextValue();
                cpu += cpuCounter.NextValue();
                totalRam += (ram / 1024 / 1024);
                n++;
            }

            double avgRam = totalRam/n;
            double avgCpu = cpu/n;
            Console.WriteLine("Average Ram is {0} ", avgRam);
            Console.WriteLine("Average Cpu is {0} ", avgCpu);
            Console.ReadLine();
        }
    }
}
于 2012-11-09T10:13:50.243 に答える