Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 01.12.2019
Сообщений: 1

Нагруженность процессора

01.03.2020, 15:33. Показов 711. Ответов 3

Студворк — интернет-сервис помощи студентам
Возникла необходимость узнать загруженность процессора, был такой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <Windows.h>
#include <iostream>
#include <cstdlib>
using namespace std;
 
static float CalculateCPULoad();
static unsigned long long FileTimeToInt64();
float GetCPULoad();
 
 
int main()
{
    int _c = 0;
 
    while (_c == 0)
    {
        cout << GetCPULoad() * 100 << "\n";
        Sleep(1000);
    }
 
    return 0;
}
 
 
static float CalculateCPULoad(unsigned long long idleTicks, unsigned long long totalTicks)
{
    static unsigned long long _previousTotalTicks = 0;
    static unsigned long long _previousIdleTicks = 0;
 
    unsigned long long totalTicksSinceLastTime = totalTicks - _previousTotalTicks;
    unsigned long long idleTicksSinceLastTime = idleTicks - _previousIdleTicks;
 
 
    float ret = 1.0f - ((totalTicksSinceLastTime > 0) ? ((float)idleTicksSinceLastTime) / totalTicksSinceLastTime : 0);
 
    _previousTotalTicks = totalTicks;
    _previousIdleTicks = idleTicks;
    return ret;
}
 
static unsigned long long FileTimeToInt64(const FILETIME & ft)
{
    return (((unsigned long long)(ft.dwHighDateTime)) << 32) | ((unsigned long long)ft.dwLowDateTime);
}
 
// Returns 1.0f for "CPU fully pinned", 0.0f for "CPU idle", or somewhere in between
// You'll need to call this at regular intervals, since it measures the load between
// the previous call and the current one.  Returns -1.0 on error.
float GetCPULoad()
{
    FILETIME idleTime, kernelTime, userTime;
    return GetSystemTimes(&idleTime, &kernelTime, &userTime) ? CalculateCPULoad(FileTimeToInt64(idleTime), FileTimeToInt64(kernelTime) + FileTimeToInt64(userTime)) : -1.0f;
}
Вывод:
||=== Build: Debug in цп (compiler: GNU GCC Compiler) ===|
E:\c++\цп\main.cpp||In function 'float GetCPULoad()':|
E:\c++\цп\main.cpp|52|error: 'GetSystemTimes' was not declared in this scope|
E:\c++\цп\main.cpp|6|warning: 'float CalculateCPULoad()' declared 'static' but never defined [-Wunused-function]|
E:\c++\цп\main.cpp|7|warning: 'long long unsigned int FileTimeToInt64()' declared 'static' but never defined [-Wunused-function]|
||=== Build failed: 1 error(s), 2 warning(s) (0 minute(s), 0 second(s)) ===|
Среда: Code::Blocks, ОС: Windows 10
Что я делаю не так?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.03.2020, 15:33
Ответы с готовыми решениями:

Ищу утилиту, которая во время использования программ выводит состояние и нагруженность процессора, видеокарты
Ищу утилиту, которая позволяет во время использования программ (особено игр в полноэкранном режиме) выводить состояние и нагруженность...

В характеристиках ноута, частоты процессора не совпадают с заявленным частотами процессора
Пожалуйста помогите. Собираюсь в ближайшее время ноут купить. Но проблема. В характеристиках ноута, указаны частоты процессора, но они не...

СМА Hoover DYN9164DPG нужна прошивка процессора, Замена процессора atmega 644
Нужна прошивка процессора atmega 644 для СМА Hoover DYN9164DPG/L1-S 31004836. Выкладывать нечего. Принёс мастер после замены проца кем...

3
 Аватар для Annemesski
2673 / 1335 / 480
Регистрация: 08.11.2016
Сообщений: 3,689
01.03.2020, 17:08
E:\c++\цп\main.cpp
Кириллица в путях к файлам проекта нихт зер гуд.
0
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,921
02.03.2020, 09:36
Цитата Сообщение от Nikita280 Посмотреть сообщение
был такой код:
Код вроде рабочий, по крайней мере mingw его собрал, а wine запустил. Разве что пришлось исправить <Windows.h> на <windows.h>, но это вообще не в счет.
Единственное что приходит в голову - проверьте пути линковщика. Где-то в настройках среды должны быть. Но тоже сомнительно: mingw не потребовал вообще никаких внешних библиотек, хватило дефолтных.
0
Just Do It!
 Аватар для XLAT
4208 / 2665 / 655
Регистрация: 23.09.2014
Сообщений: 9,061
Записей в блоге: 3
02.03.2020, 21:20
Nikita280,
Windows 7 64 C::B 17.12 GCC 9.2
всё с пол оборота завелось, инфа о загруженности цпу адекватная.
(код ваще не трогал.)

Цитата Сообщение от Annemesski Посмотреть сообщение
Кириллица в путях к файлам проекта нихт зер гуд.
переименовал папку проекта в E:\MinGW9\111\яяя
всё работает гуд, и кодеблоку и компилятору похер что не латиница, а кириллица.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.03.2020, 21:20
Помогаю со студенческими работами здесь

СМА Whirlpool AWE2322 859323284014 модуль WAVE нужна прошивка процессора, SW:L2148_07_00, прошивка процессора
Добрый день! процессор ушел в короткое Whirlpool модуль WAVE нужна прошивка процессора, SW:L2148_07_00

2 процессора
1)Я уже писал о нём.AMD E300 APU(2 cpus) with Radeon HD graphichs 1.3 Ghz.Если я поставлю ему 1.5 Ghz например он сильно греться будет...

Питание процессора
Здравствуйте. Подскажите пожалуйста. Собираюсь покупать процессор i7 6700 и мать asus-b150m-a, данная мать имеет 4-пиновое питание...

Выбор процессора
У меня стоит i5-2500 3.30 HGz. Стоит ли менять на amd fx-8300 ? И что думаете не счет него ?...

Температура процессора
Вчера менял Корпус своему ПК, еще я заменил старый кулер, но вчера при замене кулера, у него погнулся один пластмассовый усик, но остальные...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru