|
сбалансировать потоки
|
|||
---|---|---|---|
#18+
есть основная прога, и несколько потоков. в основной проге куча таймеров, событий, обработок и всяко. если я запускаю доп потоки, то они, получается, делят общее процессорное время. и тогда основная прога начинает конкретно тормозить. как их сбалансировать? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 01:12 |
|
сбалансировать потоки
|
|||
---|---|---|---|
#18+
Понизь приоритет дополнительных. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 06:00 |
|
сбалансировать потоки
|
|||
---|---|---|---|
#18+
Mizer73, Подробнее. Правильнее так - "в программеА есть основной поток ГУИ дополнительные потоки (в ней же). Чтобы не тормозил ГУИ надо его поток (там где ГУИ) не нагружать всякой фигнёй. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 07:17 |
|
сбалансировать потоки
|
|||
---|---|---|---|
#18+
Mizer73, только лишь средствами C++ этого добиться невозможно, но возможно через API операционной системы. К примеру, в Windows API есть такие функции, как SetThreadIdealProcessor или SetThreadAffinityMask . ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 08:56 |
|
сбалансировать потоки
|
|||
---|---|---|---|
#18+
rdb_dev Mizer73, только лишь средствами C++ этого добиться невозможно, но возможно через API операционной системы. К примеру, в Windows API есть такие функции, как SetThreadIdealProcessor или SetThreadAffinityMask . Если в поток событий гуи где отрисовка окон напихать архивирование файлов, то согласен - добится невозможно. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 12:08 |
|
сбалансировать потоки
|
|||
---|---|---|---|
#18+
Mizer73 есть основная прога, и несколько потоков. в основной проге куча таймеров, событий, обработок и всяко. если я запускаю доп потоки, то они, получается, делят общее процессорное время. и тогда основная прога начинает конкретно тормозить. как их сбалансировать? Тебе надо от модели запуска потоков перейти к использованию фиксированного пула потоков. У тебя есть UI поток который отвечает за графику приложения. Его не надо трогать. И есть допустим 4-8 рабочик потоков (workers) которые делают там архивацию файлов и прочее. Если потоки все заняты - то ставишь задачу в очередь. Пускай ждет. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 14:23 |
|
сбалансировать потоки
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, тут такая фигня, что доп поток как раз нагрузил посекундным опросом входных данных с их разбором, отсылкой команд из стека входящих команд, и логика обработки команд. посему ему некогда быть в очереди, ему надо вертеться независимо от основного процесса, но не отбирать у него проц время, и самому не тормозить. добавил в этот поток таймеры, что бы не было слишком частых опросов/отправок/обработок, и занизил его приоритет. пока, удовлетворительно. но это под конкретные компы. хотя, если на этих компах сбалансированно, то и на более шустрых все будет около дела. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 23:39 |
|
сбалансировать потоки
|
|||
---|---|---|---|
#18+
rdb_dev Mizer73, только лишь средствами C++ этого добиться невозможно, но возможно через API операционной системы. К примеру, в Windows API есть такие функции, как SetThreadIdealProcessor или SetThreadAffinityMask . DWORD SetThreadIdealProcessor( HANDLE hThread, DWORD dwIdealProcessor ); интересная тема... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 23:41 |
|
сбалансировать потоки
|
|||
---|---|---|---|
#18+
Mizer73 rdb_dev Mizer73, только лишь средствами C++ этого добиться невозможно, но возможно через API операционной системы. К примеру, в Windows API есть такие функции, как SetThreadIdealProcessor или SetThreadAffinityMask . DWORD SetThreadIdealProcessor( HANDLE hThread, DWORD dwIdealProcessor ); интересная тема... а как основному процессу выделить количество ядер? мгновенный вопрос без раздумий "как" ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 23:41 |
|
сбалансировать потоки
|
|||
---|---|---|---|
#18+
Mizer73 основному процессу Это что такое? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2021, 00:36 |
|
сбалансировать потоки
|
|||
---|---|---|---|
#18+
Mizer73, у "основного" процесса есть "основной" поток. Ему и выделяй! В чём проблема? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2021, 17:00 |
|
сбалансировать потоки
|
|||
---|---|---|---|
#18+
Mizer73, Доп поток (там где нет очереди ГУИ) нагружай чем угодно. Правило не грузить только для того где ГУИ. Если не нравится не реагирующие окошки винды. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2021, 13:42 |
|
сбалансировать потоки
|
|||
---|---|---|---|
#18+
PetroNotC SharpДоп поток (там где нет очереди ГУИ) нагружай чем угодно. Он нагружает его вызовами Synchronize. Архангельский переворачивается в гробу. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2021, 14:01 |
|
сбалансировать потоки
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, убрал Synchronize - и все завертелось. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2021, 14:06 |
|
сбалансировать потоки
|
|||
---|---|---|---|
#18+
Ну конечно. Зачем нужен synchronize... Рудимент да и только... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2021, 17:28 |
|
сбалансировать потоки
|
|||
---|---|---|---|
#18+
Mizer73 Dimitry Sibiryakov, убрал Synchronize - и все завертелось. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 15:30 |
|
сбалансировать потоки
|
|||
---|---|---|---|
#18+
rdb_dev Mizer73ал Synchronize - и все завертелось. да ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 15:38 |
|
сбалансировать потоки
|
|||
---|---|---|---|
#18+
Mizer73 Dimitry Sibiryakov, убрал Synchronize - и все завертелось. Просто "убрал"? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 16:20 |
|
сбалансировать потоки
|
|||
---|---|---|---|
#18+
Что-то в голове крутится какое-то изречение что дескыть гениально когда уже нечего убрать... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 20:25 |
|
сбалансировать потоки
|
|||
---|---|---|---|
#18+
mayton Что-то в голове крутится какое-то изречение что дескыть гениально когда уже нечего убрать... Все гениальное просто ? Обычно оно вырождается в "Все гениальное просто ... но неправильно" ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 20:45 |
|
сбалансировать потоки
|
|||
---|---|---|---|
#18+
Dima T mayton Что-то в голове крутится какое-то изречение что дескыть гениально когда уже нечего убрать... Все гениальное просто ? Обычно оно вырождается в "Все гениальное просто ... но неправильно" Нет. Если так пересказать то теряется суть. Тут как раз речь идет не о явлении простоты. А о "процессе" внесения упрощений. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 20:49 |
|
сбалансировать потоки
|
|||
---|---|---|---|
#18+
Dima T mayton Что-то в голове крутится какое-то изречение что дескыть гениально когда уже нечего убрать... Все гениальное просто ? Обычно оно вырождается в "Все гениальное просто ... но неправильно" 1) „Я беру камень и отсекаю всё лишнее.“ — Микеланджело Буонарроти 2)"Сложнее всего в мире достигнуть простоты — это крайняя граница опыта и последнее усилие гения". © George Sand. 3) Не работает? Попробуй ничего не делать! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2021, 09:25 |
|
сбалансировать потоки
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Dima T пропущено... Все гениальное просто ? Обычно оно вырождается в "Все гениальное просто ... но неправильно" 1) „Я беру камень и отсекаю всё лишнее.“ — Микеланджело Буонарроти 2)"Сложнее всего в мире достигнуть простоты — это крайняя граница опыта и последнее усилие гения". © George Sand. 3) Не работает? Попробуй ничего не делать! Да. Джордж Санд. Похоже это оно. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2021, 12:51 |
|
сбалансировать потоки
|
|||
---|---|---|---|
#18+
maytonДа. Джордж Санд. Сразу видно писательницу. Технари формулируют проще: Keep It Simple, Stupid. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2021, 12:58 |
|
сбалансировать потоки
|
|||
---|---|---|---|
#18+
“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 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2021, 13:08 |
|
сбалансировать потоки
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov maytonДа. Джордж Санд. Сразу видно писательницу. Технари формулируют проще: Keep It Simple, Stupid. Эх, верно говорят, что нет пророков в своём отечестве... :) "Сделать простое иногда во много раз сложнее, чем сложное" /Михаил Калашников/ ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2021, 14:48 |
|
сбалансировать потоки
|
|||
---|---|---|---|
#18+
Один финский парень в борьбе с простотой рефакторил алгоритм удаления списковых элементов. Оригинал не могу найти но вот кто-то копи-пастил себе в репу https://github.com/mkirchner/linked-list-good-taste before Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
after Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Мне кажется тут главное - оставаться в пределах возможностей человеческого восприятия. Тоесть код должен быть элегантным но оставаться supportable. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2021, 15:16 |
|
сбалансировать потоки
|
|||
---|---|---|---|
#18+
rdb_dev, Калашников хороший пример)) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2021, 15:42 |
|
сбалансировать потоки
|
|||
---|---|---|---|
#18+
mayton, довольно неочевидный пример для сишника или плюсовика, так как требует внимания а всё из-за нелюбви к заданиям типов у оных ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2021, 21:48 |
|
сбалансировать потоки
|
|||
---|---|---|---|
#18+
Мне кажется дело не в типах. Код: plaintext 1. 2. 3. 4. 5.
Не знаю как в сях. Но в С++ подобный код обязательно вызывает во первых споры разработчиков. Во вторых возможны варнинги статик-анализаторов. PVS, Sonar, e.t.c. Я не тестил но думаю что там будут просто смысловые и синтаксические предупреждения класса "code-smell", "tricky-code" и возможно что-то с человеческими метриками. Типа там... неясность. Использование одной переменной в двух ролях. Я-бы оставил 1-й вариант кода. Я всегда беру две ссылки previous/next для обработки списков. Это дает возможность смотреть "назад". И может быть в дву-направленных я-бы брал три штуки. Возможно Торвальдс гордится некими ассемблерными оптимизациями в его варианте - но мне всегда ближе и ценнее способность прочитать. Восхитится удобством внесения изменений. И просто быть спокойным что это закоммичен код. А не ребус. А если впадать в крайности... ну писал-бы ассемблерные вставки. Кто-ж запретит-то. Особенно когда ты - главный коммитер. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 11:56 |
|
сбалансировать потоки
|
|||
---|---|---|---|
#18+
mayton, роль тут одна - "место, где хранится указатель", и для понимания этого, желательно обозначить это новым типом, что не сделано "Задание лишних сущностей плохо, а незадание нужных сущностей - ещё хуже" (С) например, использование этого способа в красно-чёрном дереве позволяет срезать половину кода, что явно облегчает читаемость ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 12:53 |
|
|
Start [/forum/topic.php?all=1&fid=57&tid=2017164]: |
0ms |
get settings: |
23ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
564ms |
get tp. blocked users: |
1ms |
others: | 310ms |
total: | 977ms |
0 / 0 |