Счетчик производительности процессора

Чтобы создать приложение, которое будет отслеживать загрузку процессора и количество доступной оперативной памяти требуется всего несколько минут. Разработчики .NET Framework действительно постарались и включили замечательный компонент производительности Windows NT – PerfomanceCounter (продребнее здесь).

Разместим на форме Timer, 2 GroupBox, 3 Label, ProgressBar, 2 PrefomanceCounter (см. рис. 1)


Рис. 1 Расположение элементов на форме

Теперь выставим необходимые свойства наших элементов.

Таймер:
Interval1000
Enabletrue

ProgressBar:
MinimumValue0
MaximumValue100
Step1

Label я назвал как на рисунке (других настроек не нужно). GroupBox можете называть как хотите.

Тепер перейдем к настройке PrefomanceCounter. Один из компонентов будем использовать для получения значения загрузки процессора (рис. 2), второй – количество доступной оперативной памяти в килобайтах (рис. 3).


Рис. 2 Настройка PerfomanceCounter


Рис. 3 Настройка PerfomanceCounter

Выберите свойтво CategoryName после чего из списка выберите пункт Процессор (если у вас англ. язык то Processor). Теперь переходим к свойству CounterName. Так как в предыдущем шаге мы выбрали определенную категорию, то здесь нам будет предоставлен список подкатегорий. Выбираем % загруженности процессора (% Processor Time) и установим в свойстве InstanceName значение _Total. Если у вас в системе несколько процессоров, то выберите конкретный интересующий вас процессор.

Теперь перейдем к коду. Весь код будет выполняться в обработчике timer1_Tick:

private void timer1_Tick(object sender, EventArgs e)
{
   //загрузка процессора
   progressBar1.Value = (int)(pcProcessor.NextValue());
   lblProcessor.Text = "Загрузка процессора: " + progressBar1.Value.ToString() + "%";

   //количество доступной оперативной памяти
   lblMemoryAvailable.Text = ((int)pcMemoryAvailable.NextValue()).ToString();
}

Запустив программу, мы увидим текущую загрузку процессора и количество доступной оперативной памяти в КБ. Необходимо сказать, что у элемента PerfomanceCounter есть свойство MachineName которое позволяет получать значения не только с локальной машины, но и с удаленного компьютера.


Рис. 4 Результат выполнения программы

  ProcessorMonitor.rar (34,6 KiB, 1 335 закачек)

Поделиться в соц. сетях

Опубликовать в Facebook
Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Google Buzz
Опубликовать в Одноклассники
Опубликовать в Яндекс
Опубликовать в Мой Мир

Похожие статьи

Комментарии (2) на “Счетчик производительности процессора”

  • avatar Linoin:

    Отличная статья! Все доступно и понятно разобрано. Спасибо!

  • avatar ZhiZer:

    Необработанное исключение типа «System.ArgumentOutOfRangeException» в System.Windows.Forms.dll

    Дополнительные сведения: Значение ’1547372′ недопустимо для ‘Value’. ‘Value’ должно лежать в диапазоне от ‘minimum’ до ‘maximum’.

    Обьяснил…

Оставить комментарий