powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Ограничение нагрузки на процессор
25 сообщений из 25, страница 1 из 1
Ограничение нагрузки на процессор
    #39141105
ukugyul552465
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть программа, которая использует цикл для выполнения разных операций. Цикл долгий, и во время его работы нагрузка на ядро достигает 100%.
Как ограничить хотя бы до 40-50% ?
Пробовал так:
Код: plaintext
1.
SetPriorityClass(GetCurrentProcess(), PROCESS_MODE_BACKGROUND_BEGIN);


и так:
Код: plaintext
1.
SetPriorityClass( GetCurrentProcess(), THREAD_PRIORITY_LOWEST );


Приоритет ставится на очень низкий.
Однако нагрузка на ядро, на котором работает программа, всегда около 100%.
...
Рейтинг: 0 / 0
Ограничение нагрузки на процессор
    #39141107
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ukugyul552465Как ограничить хотя бы до 40-50% ?
Купить двухядерный процессор.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ограничение нагрузки на процессор
    #39141108
ukugyul552465
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Суть не в этом.
Необходимо в самой программе ограничить допустимую нагрузку этого процесса.
...
Рейтинг: 0 / 0
Ограничение нагрузки на процессор
    #39141110
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если цикл делает что-то полезное, ограничивать его не надо: доделает и сам успокоится.
Если цикл не делает ничего полезного, его надо вообще из программы выкинуть и заменить на
одну из функций ожидания.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ограничение нагрузки на процессор
    #39141112
ukugyul552465
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Цикл делает полезные операции, проблема в том, что при этом он использует все ресурсы ядра.
Необходимо уменьшить нагрузку, ну и соответственно, скорость работы тоже снизится.
...
Рейтинг: 0 / 0
Ограничение нагрузки на процессор
    #39141115
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ukugyul552465проблема в том, что при этом он использует все ресурсы ядра.

Это не проблема.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ограничение нагрузки на процессор
    #39141116
ukugyul552465
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Программа не должна мешать людям заниматься своими делами и создавать сильную нагрузку.
...
Рейтинг: 0 / 0
Ограничение нагрузки на процессор
    #39141119
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Достаточно того что ты понизил приоритет. Как только потребуется процессор процессу с более высоким приоритетом - так сразу твой встанет.

Другое дело память: если ты отожрал всю оперативку, то другой процесс уйдет в своп, и при возобновлении будет с диска подкачиваться и тормозить.
...
Рейтинг: 0 / 0
Ограничение нагрузки на процессор
    #39141120
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ukugyul552465Программа не должна мешать людям заниматься своими делами
Для этого достаточно низкого приоритета. Процессорное время автоматически будет передано
другим задачам буде таковые появятся.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ограничение нагрузки на процессор
    #39141121
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если твоя прога активно что-то читает/пишет на диск, то тут создашь тормоза при обращению к диску. Они не регулируются.

Единственный дискомфорт, который можно создать 100% загрузкой проца: шум от вентилятора.

Если очень надо разгрузить: вызывай периодически Sleep() на 20-30 мс, частоту вызова тут только опытным путем подбирать. Проц не умеет работать на 50%. Он или работает или не работает.
...
Рейтинг: 0 / 0
Ограничение нагрузки на процессор
    #39141124
ukugyul552465
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пытаюсь сейчас решить через Sleep.
...
Рейтинг: 0 / 0
Ограничение нагрузки на процессор
    #39141125
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima Tвызывай периодически Sleep()
Зря ты это сказал. Так ведь
этот кулхацкер
может и дописать-таки свой вирус...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ограничение нагрузки на процессор
    #39141127
ukugyul552465
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет. Пишу не вирус.
...
Рейтинг: 0 / 0
Ограничение нагрузки на процессор
    #39141128
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ukugyul552465Пишу не вирус.
Создание невидимого каталога, скачивание с сайта, шифрование, показ текстового файла из
ресурсов пользователю, а теперь ещё и чтобы не демаскировался гудением вентилятора. Ага,
конечно же это не вирус...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ограничение нагрузки на процессор
    #39141130
ukugyul552465
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,
Изучаю язык. Но нравится реализовывать всякие разные вещи, например, шифрование.
А иногда просто любопытство.
...
Рейтинг: 0 / 0
Ограничение нагрузки на процессор
    #39141133
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ukugyul552465нравится реализовывать всякие разные вещи, например, шифрование.

После появления в процессорах набора команд SSE3, любые алгоритмы шифрования кроме AES
стали чисто нишевыми.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ограничение нагрузки на процессор
    #39141165
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
std::this_thread::yeild
...
Рейтинг: 0 / 0
Ограничение нагрузки на процессор
    #39141212
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ukugyul552465Есть программа, которая использует цикл для выполнения разных операций. Цикл долгий, и во время его работы нагрузка на ядро достигает 100%.
Как ограничить хотя бы до 40-50% ?
Ты всё правильно делал. Управление приоритетами потоков внутри процессов или управление приоритетом
процесса в ОС - это коробочное решение проблемы. В дополнение я-бы предложил пересмотреть
алгоритм. Возможно он выбран неправильно или неверно соптимизирован.

Вставлять sleep или другие механизмы таймаутов - неправильно. Их реализация сожрёт полезное
время которое ты хотел отдать другим процессам. Механизмы wait, входы в крит-секции, паузы
это всё неправильное решение твоей проблемы.
...
Рейтинг: 0 / 0
Ограничение нагрузки на процессор
    #39141220
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ukugyul552465Есть программа, которая использует цикл для выполнения разных операций. Цикл долгий, и во время его работы нагрузка на ядро достигает 100%.
Как ограничить хотя бы до 40-50% ?
Пробовал так:
Код: plaintext
1.
SetPriorityClass(GetCurrentProcess(), PROCESS_MODE_BACKGROUND_BEGIN);


и так:
Код: plaintext
1.
SetPriorityClass( GetCurrentProcess(), THREAD_PRIORITY_LOWEST );


Приоритет ставится на очень низкий.
Однако нагрузка на ядро, на котором работает программа, всегда около 100%.


приоритеты на нагрузку CPU не влияют.
тебе надо ставить Sleep -ы периодически.

но вообще-то сама по себе высокая нагрузка на процессор не страшна совершенно, поэтому странно, что ты хочешь её снижать.
...
Рейтинг: 0 / 0
Ограничение нагрузки на процессор
    #39141221
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SetPriorityClass( GetCurrentProcess(),» THREAD_PRIORITY_LOWEST );

[/src]
Приоритет ставится на очень низкий.
это не имеет значения, но просто чтоб ты знал -это не самый низкий приоритет, это самый низкий приоритет потока в процессе, а он относительный, только приоритет процесса абсолютный. поэтому это не самый низкий из возможных, а лишь самый низкий в группе.
...
Рейтинг: 0 / 0
Ограничение нагрузки на процессор
    #39141276
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ukugyul552465Dimitry Sibiryakov,
Изучаю язык. Но нравится реализовывать всякие разные вещи, например, шифрование.
А иногда просто любопытство.
Неубедительно. Вирусописательство дело уголовное, если отделу К дадут команду повысить раскрываемость, то под раздачу попадут "изучающие". Их ловить проще. Пару лет дадут, скорее всего условно.
...
Рейтинг: 0 / 0
Ограничение нагрузки на процессор
    #39141279
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonВставлять sleep или другие механизмы таймаутов - неправильно. Их реализация сожрёт полезное
время которое ты хотел отдать другим процессам.
Это как?
...
Рейтинг: 0 / 0
Ограничение нагрузки на процессор
    #39141322
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://en.cppreference.com/w/cpp/thread/yield же

и ничего оно не сожрет . оно просто отдаст остаток кванта и все. то есть если система не загруженна, то будет использовать все, если есть другой процесс, отдаст квант ему. вставляй на каждой итерации или по две на итерацию...
...
Рейтинг: 0 / 0
Ограничение нагрузки на процессор
    #39141323
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а, ну хотя наверное не так.. она только для внутреннего планировщика похоже..
...
Рейтинг: 0 / 0
Ограничение нагрузки на процессор
    #39141330
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskymaytonВставлять sleep или другие механизмы таймаутов - неправильно. Их реализация сожрёт полезное
время которое ты хотел отдать другим процессам.
Это как?
Ээ... насчёт sleep - не уверен. Наверное можно попробовать. И не 1 мс а поболее.
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Ограничение нагрузки на процессор
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]