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


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


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

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

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

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

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

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

Вставлять sleep или другие механизмы таймаутов - неправильно. Их реализация сожрёт полезное
время которое ты хотел отдать другим процессам. Механизмы wait, входы в крит-секции, паузы
это всё неправильное решение твоей проблемы.
...
Рейтинг: 0 / 0
01.01.2016, 09:07
    #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
01.01.2016, 09:11
    #39141221
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ограничение нагрузки на процессор
SetPriorityClass( GetCurrentProcess(),» THREAD_PRIORITY_LOWEST );

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

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


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