powered by simpleCommunicator - 2.0.28     © 2024 Programmizd 02
Map
Форумы / C++ [игнор отключен] [закрыт для гостей] / сбалансировать потоки
25 сообщений из 31, страница 1 из 2
сбалансировать потоки
    #40101134
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть основная прога, и несколько потоков.
в основной проге куча таймеров, событий, обработок и всяко.
если я запускаю доп потоки, то они, получается, делят общее процессорное время. и тогда основная прога начинает конкретно тормозить.
как их сбалансировать?
...
Рейтинг: 0 / 0
сбалансировать потоки
    #40101149
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понизь приоритет дополнительных.
...
Рейтинг: 0 / 0
сбалансировать потоки
    #40101158
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73,
Подробнее.
Правильнее так - "в программеА есть основной поток ГУИ дополнительные потоки (в ней же).
Чтобы не тормозил ГУИ надо его поток (там где ГУИ) не нагружать всякой фигнёй.
...
Рейтинг: 0 / 0
сбалансировать потоки
    #40101177
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73, только лишь средствами C++ этого добиться невозможно, но возможно через API операционной системы.
К примеру, в Windows API есть такие функции, как SetThreadIdealProcessor или SetThreadAffinityMask .
...
Рейтинг: 0 / 0
сбалансировать потоки
    #40101265
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev
Mizer73, только лишь средствами C++ этого добиться невозможно, но возможно через API операционной системы.
К примеру, в Windows API есть такие функции, как SetThreadIdealProcessor или SetThreadAffinityMask .
угу.
Если в поток событий гуи где отрисовка окон напихать архивирование файлов, то согласен - добится невозможно.
...
Рейтинг: 0 / 0
сбалансировать потоки
    #40101338
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73
есть основная прога, и несколько потоков.
в основной проге куча таймеров, событий, обработок и всяко.
если я запускаю доп потоки, то они, получается, делят общее процессорное время. и тогда основная прога начинает конкретно тормозить.
как их сбалансировать?

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

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


DWORD SetThreadIdealProcessor(
HANDLE hThread,
DWORD dwIdealProcessor
);

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


DWORD SetThreadIdealProcessor(
HANDLE hThread,
DWORD dwIdealProcessor
);

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


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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

Сразу видно писательницу. Технари формулируют проще: Keep It Simple, Stupid.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
сбалансировать потоки
    #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
25 сообщений из 31, страница 1 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / сбалансировать потоки
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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