Гость
Форумы / C++ [игнор отключен] [закрыт для гостей] / сбалансировать потоки / 25 сообщений из 31, страница 1 из 2
01.10.2021, 01:12
    #40101134
Mizer73
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сбалансировать потоки
есть основная прога, и несколько потоков.
в основной проге куча таймеров, событий, обработок и всяко.
если я запускаю доп потоки, то они, получается, делят общее процессорное время. и тогда основная прога начинает конкретно тормозить.
как их сбалансировать?
...
Рейтинг: 0 / 0
01.10.2021, 06:00
    #40101149
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сбалансировать потоки
Понизь приоритет дополнительных.
...
Рейтинг: 0 / 0
01.10.2021, 07:17
    #40101158
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сбалансировать потоки
Mizer73,
Подробнее.
Правильнее так - "в программеА есть основной поток ГУИ дополнительные потоки (в ней же).
Чтобы не тормозил ГУИ надо его поток (там где ГУИ) не нагружать всякой фигнёй.
...
Рейтинг: 0 / 0
01.10.2021, 08:56
    #40101177
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сбалансировать потоки
Mizer73, только лишь средствами C++ этого добиться невозможно, но возможно через API операционной системы.
К примеру, в Windows API есть такие функции, как SetThreadIdealProcessor или SetThreadAffinityMask .
...
Рейтинг: 0 / 0
01.10.2021, 12:08
    #40101265
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сбалансировать потоки
rdb_dev
Mizer73, только лишь средствами C++ этого добиться невозможно, но возможно через API операционной системы.
К примеру, в Windows API есть такие функции, как SetThreadIdealProcessor или SetThreadAffinityMask .
угу.
Если в поток событий гуи где отрисовка окон напихать архивирование файлов, то согласен - добится невозможно.
...
Рейтинг: 0 / 0
01.10.2021, 14:23
    #40101338
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сбалансировать потоки
Mizer73
есть основная прога, и несколько потоков.
в основной проге куча таймеров, событий, обработок и всяко.
если я запускаю доп потоки, то они, получается, делят общее процессорное время. и тогда основная прога начинает конкретно тормозить.
как их сбалансировать?

Тебе надо от модели запуска потоков перейти к использованию фиксированного пула потоков.
У тебя есть UI поток который отвечает за графику приложения. Его не надо трогать. И есть
допустим 4-8 рабочик потоков (workers) которые делают там архивацию файлов и прочее.
Если потоки все заняты - то ставишь задачу в очередь. Пускай ждет.
...
Рейтинг: 0 / 0
01.10.2021, 23:39
    #40101476
Mizer73
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сбалансировать потоки
PetroNotC Sharp,

тут такая фигня, что доп поток как раз нагрузил посекундным опросом входных данных с их разбором, отсылкой команд из стека входящих команд, и логика обработки команд.
посему ему некогда быть в очереди, ему надо вертеться независимо от основного процесса, но не отбирать у него проц время, и самому не тормозить.
добавил в этот поток таймеры, что бы не было слишком частых опросов/отправок/обработок, и занизил его приоритет.
пока, удовлетворительно. но это под конкретные компы. хотя, если на этих компах сбалансированно, то и на более шустрых все будет около дела.
...
Рейтинг: 0 / 0
01.10.2021, 23:41
    #40101477
Mizer73
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сбалансировать потоки
rdb_dev
Mizer73, только лишь средствами C++ этого добиться невозможно, но возможно через API операционной системы.
К примеру, в Windows API есть такие функции, как SetThreadIdealProcessor или SetThreadAffinityMask .


DWORD SetThreadIdealProcessor(
HANDLE hThread,
DWORD dwIdealProcessor
);

интересная тема...
...
Рейтинг: 0 / 0
01.10.2021, 23:41
    #40101478
Mizer73
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сбалансировать потоки
Mizer73
rdb_dev
Mizer73, только лишь средствами C++ этого добиться невозможно, но возможно через API операционной системы.
К примеру, в Windows API есть такие функции, как SetThreadIdealProcessor или SetThreadAffinityMask .


DWORD SetThreadIdealProcessor(
HANDLE hThread,
DWORD dwIdealProcessor
);

интересная тема...


а как основному процессу выделить количество ядер? мгновенный вопрос без раздумий "как"
...
Рейтинг: 0 / 0
02.10.2021, 00:36
    #40101483
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сбалансировать потоки
Mizer73
основному процессу

Это что такое?
...
Рейтинг: 0 / 0
04.10.2021, 17:00
    #40101861
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сбалансировать потоки
Mizer73, у "основного" процесса есть "основной" поток. Ему и выделяй! В чём проблема?
...
Рейтинг: 0 / 0
05.10.2021, 13:42
    #40102082
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сбалансировать потоки
Mizer73,
Доп поток (там где нет очереди ГУИ) нагружай чем угодно.
Правило не грузить только для того где ГУИ.
Если не нравится не реагирующие окошки винды.
...
Рейтинг: 0 / 0
05.10.2021, 14:01
    #40102091
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сбалансировать потоки
PetroNotC SharpДоп поток (там где нет очереди ГУИ) нагружай чем угодно.

Он нагружает его вызовами Synchronize. Архангельский переворачивается в гробу.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
05.10.2021, 14:06
    #40102095
Mizer73
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сбалансировать потоки
Dimitry Sibiryakov,

убрал Synchronize - и все завертелось.
...
Рейтинг: 0 / 0
05.10.2021, 17:28
    #40102151
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сбалансировать потоки
Ну конечно. Зачем нужен synchronize... Рудимент да и только...
...
Рейтинг: 0 / 0
06.10.2021, 15:30
    #40102367
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сбалансировать потоки
Mizer73
Dimitry Sibiryakov,

убрал Synchronize - и все завертелось.
Так у тебя, чтоль, Embarcadero С++ Builder?
...
Рейтинг: 0 / 0
06.10.2021, 15:38
    #40102369
Mizer73
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сбалансировать потоки
rdb_dev
Mizer73ал Synchronize - и все завертелось.


да
...
Рейтинг: 0 / 0
06.10.2021, 16:20
    #40102383
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сбалансировать потоки
Mizer73
Dimitry Sibiryakov,

убрал Synchronize - и все завертелось.

Просто "убрал"?
...
Рейтинг: 0 / 0
06.10.2021, 20:25
    #40102465
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сбалансировать потоки
Что-то в голове крутится какое-то изречение что дескыть гениально когда уже нечего убрать...
...
Рейтинг: 0 / 0
06.10.2021, 20:45
    #40102473
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сбалансировать потоки
mayton
Что-то в голове крутится какое-то изречение что дескыть гениально когда уже нечего убрать...

Все гениальное просто ?

Обычно оно вырождается в "Все гениальное просто ... но неправильно"
...
Рейтинг: 0 / 0
06.10.2021, 20:49
    #40102476
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сбалансировать потоки
Dima T
mayton
Что-то в голове крутится какое-то изречение что дескыть гениально когда уже нечего убрать...

Все гениальное просто ?

Обычно оно вырождается в "Все гениальное просто ... но неправильно"

Нет. Если так пересказать то теряется суть. Тут как раз речь идет не о явлении простоты.
А о "процессе" внесения упрощений.
...
Рейтинг: 0 / 0
07.10.2021, 09:25
    #40102550
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сбалансировать потоки
Dima T
mayton
Что-то в голове крутится какое-то изречение что дескыть гениально когда уже нечего убрать...

Все гениальное просто ?

Обычно оно вырождается в "Все гениальное просто ... но неправильно"
про неправильно не слышал ни разу.
1) „Я беру камень и отсекаю всё лишнее.“ — Микеланджело Буонарроти
2)"Сложнее всего в мире достигнуть простоты — это крайняя граница опыта и последнее усилие гения". © George Sand.
3) Не работает? Попробуй ничего не делать!
...
Рейтинг: 0 / 0
07.10.2021, 12:51
    #40102661
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сбалансировать потоки
PetroNotC Sharp
Dima T
пропущено...

Все гениальное просто ?

Обычно оно вырождается в "Все гениальное просто ... но неправильно"
про неправильно не слышал ни разу.
1) „Я беру камень и отсекаю всё лишнее.“ — Микеланджело Буонарроти
2)"Сложнее всего в мире достигнуть простоты — это крайняя граница опыта и последнее усилие гения". © George Sand.
3) Не работает? Попробуй ничего не делать!

Да. Джордж Санд. Похоже это оно.
...
Рейтинг: 0 / 0
07.10.2021, 12:58
    #40102665
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сбалансировать потоки
maytonДа. Джордж Санд.

Сразу видно писательницу. Технари формулируют проще: Keep It Simple, Stupid.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
07.10.2021, 13:08
    #40102678
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сбалансировать потоки
“Perfection is achieved not when there is nothing more to add, but rather when there is nothing more to take away.” – Antoine de Saint-Exupery
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / сбалансировать потоки / 25 сообщений из 31, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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