Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.99/75: Рейтинг темы: голосов - 75, средняя оценка - 4.99
178 / 33 / 17
Регистрация: 02.02.2014
Сообщений: 373

Узнать загрузку CPU

13.05.2020, 16:41. Показов 15106. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем! Как определить загрузку процессора так, чтобы она совпадала с показаниями диспетчера задач?

Нашёл в интернете несколько способов вроде
C#
1
new PerformanceCounter("Processor", "% Processor Time", "_Total");
но все они дают показатели, отличные от диспетчера задач - то больше, то меньше, причём зависимости я не нашел. Есть ли какой-нибудь способ?

Заранее благодарен.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.05.2020, 16:41
Ответы с готовыми решениями:

Узнать загрузку процессора программой
Добрый день! Подскажите, кто уже решал подобную задачу. Как узнать процент загрузки процессора данной программой? Добавлено через...

Узнать нагрузку CPU/RAM
В общем есть сервер КС, нужно написать программу, которая выводила бы нагрузку на CPU и RAM, запущен ли сервер. В которую сторону мне...

Узнать загрузку cpu и memory удаленного пк в сети в %
Всем доброго дня! Необходимо узнать загрузку cpu и memory в % удаленного пк в сети. В текстовое поле вводим имя пк, нажимаем на кнопку...

11
178 / 33 / 17
Регистрация: 02.02.2014
Сообщений: 373
14.05.2020, 14:09  [ТС]
Неужели это нетривиально?
0
Эксперт .NET
 Аватар для Usaga
14086 / 9303 / 1348
Регистрация: 21.01.2016
Сообщений: 34,916
15.05.2020, 06:50
VBDUnit, а в чём прикол? Вы считаете показания диспетчера задач эталонными?
1
178 / 33 / 17
Регистрация: 02.02.2014
Сообщений: 373
15.05.2020, 21:15  [ТС]
Вы считаете показания диспетчера задач эталонными?
Пользователи считают Каждый раз долго объяснять им, что компьютер чуток сложнее, чем кажется, очень утомительно, и далеко не всегда прокатывает. Поэтому хочу сделать, чтобы у них не вызывала когнитивный диссонанс разница между моими показаниями и диспетчером задач.
0
 Аватар для Рядовой
1524 / 914 / 329
Регистрация: 17.05.2015
Сообщений: 3,438
15.05.2020, 22:48
VBDUnit, вы никогда не думали, что процент загруженности - величина зависящая от соседних показателей?
И ваши значения просто выводят пиковые величины...
https://stackoverflow.com/ques... -ram-usage
1
178 / 33 / 17
Регистрация: 02.02.2014
Сообщений: 373
17.05.2020, 17:43  [ТС]
Соседних в смысле не по времени, а по ядрам? То есть _Total - это максимальная загрузка среди ядер?
0
 Аватар для Рядовой
1524 / 914 / 329
Регистрация: 17.05.2015
Сообщений: 3,438
17.05.2020, 17:51
VBDUnit, по времени, ядра тут непричем
0
178 / 33 / 17
Регистрация: 02.02.2014
Сообщений: 373
17.05.2020, 18:14  [ТС]
Допустим, это максимальное значение за последние N измерений, и поэтому неверно. Ок. А как тогда мерит диспетчер задач? Он же тоже опирается на счётчики производительности.

Сделал как у чувака в примере - на каждое виртуальное ядро по отдельному счётчику, потом усредняю по ядрам. Всё равно не сходится. Хотя это не _Total, но всё равно не работает, показания примерно на 1/3 меньше диспетчера задач.

Нашёл ещё такой вариант:
C#
1
2
3
4
5
6
7
var allIdle = new PerformanceCounter(
    "Processor", 
    "% Idle Time", 
    "_Total"
);
 
int cpu = 100 - allIdle;
Тоже не совпадает.
0
 Аватар для Рядовой
1524 / 914 / 329
Регистрация: 17.05.2015
Сообщений: 3,438
17.05.2020, 23:55
Цитата Сообщение от VBDUnit Посмотреть сообщение
А как тогда мерит диспетчер задач?
Откуда мне знать? Вы надеялись тут увидеть программиста из майкрософт?
Цитата Сообщение от VBDUnit Посмотреть сообщение
Тоже не совпадает
Разумеется. Этот алгоритм же не учитывает показатели до этого.
Вы примерно представляете как бортовой компьютер рассчитывает потребление топлива? Если отображать номинальный расход , то он будет колебаться от 0 при отпускании педали до 100500 при ускорении. Вот и вы видите номинальные значения.
1
178 / 33 / 17
Регистрация: 02.02.2014
Сообщений: 373
19.05.2020, 19:45  [ТС]
Откуда мне знать? Вы надеялись тут увидеть программиста из майкрософт?
Я рассчитывал, что это тривиальная задача - полагал, что в PerfomanceCounter уже считается нужная величина, а диспетчер задач её просто отображает. Я не подозревал, что это какая-то адская нетривиальщина, и надо считать всё самому. Абстрактно вычислить нагрузку на процессор - да, это нетривиально, а вот то, что "как в диспетчере задач" - это тоже нетривиально - вот это меня удивило

Разумеется. Этот алгоритм же не учитывает показатели до этого.
Вы примерно представляете как бортовой компьютер рассчитывает потребление топлива? Если отображать номинальный расход , то он будет колебаться от 0 при отпускании педали до 100500 при ускорении. Вот и вы видите номинальные значения.
Я понимаю, что способов отображения и интерпретации постоянно меняющейся величины множество. Можно даже обмазаться нейросетями и фильтром Калмана (хотя не факт в данном случае). Но мне нужно, по сути, не мерить её, а просто делать так же, как диспетчер задач. Чтобы циферка совпадала и вопросов не было.

То есть я ожидал, что есть некоторая служба в винде, которая всё считает, а диспетчер задач к ней просто подключается. И мне тоже нужно к ней подключиться.
0
 Аватар для Sanya_sa
912 / 816 / 333
Регистрация: 03.02.2015
Сообщений: 5,276
Записей в блоге: 9
23.05.2020, 23:05
VBDUnit,

C#
1
2
3
4
5
6
7
8
9
10
11
12
        public static void CPU()
        {
 
            using (var pc = new PerformanceCounter("Processor", "% Processor Time", "_Total"))
            {
                while (true)
                {
                    Console.WriteLine(pc.NextValue());
                    Thread.Sleep(1000);
                }
            }
        }

Вот это должно совпадать.
2
178 / 33 / 17
Регистрация: 02.02.2014
Сообщений: 373
12.06.2020, 10:10  [ТС]
Цитата Сообщение от Sanya_sa Посмотреть сообщение
public static void CPU()
        {
using (var pc = new PerformanceCounter("Processor", "% Processor Time", "_Total"))
            {
                while (true)
                {
                    Console.WriteLine(pc.NextValue());
                    Thread.Sleep(1000);
                }
            }
        }
Спасибо, но это как раз то, что я пробовал с самого начала и что давало показания, отличающиеся от Диспетчера задач.

В общем, сделал как у этого парня
https://stackoverflow.com/ques... -ram-usage

данные стали почти совпадать с диспетчером задач. На этом, думаю, пока остановлюсь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.06.2020, 10:10
Помогаю со студенческими работами здесь

Получить загрузку CPU компьютера в сети
Здравствуйте, Задача стоит получить загрузку процессора, как сделать это на компьютере где установлена программа я понял, с помощью ...

Вывести на форму загрузку CPU и графически отобразить это в виде заливки прямоугольника
Добрый день! Хочу вывести на форму загрузку CPU и графически отобразить это в виде заливки прямоугольника (столбика): private...

Узнать информацию о CPU
Всем привет! Мне нужно узнать информацию о процессоре. А именно это название процесора и сколько ГГц. Буду очень признателен!

Узнать загрузку CPU, количество занимаемой RAM определнным процессом
Здравствуйте товарищи. Я новичок в Ubuntu и bash скриптах. Как для определенного процесса с помощью bash скрипта можно узнать: ...

Как уменьшить загрузку RAM за счет CPU?
как уменьшить загрузку Оперативки за счет Цп ? А то Не понятно куда девайтеся оперативка процессы которые жрут на другмо компе 2гига от...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru