можно ли повысить приоритет основного процесса

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
Post Reply
User avatar
cutecode
Super wx Problem Solver
Super wx Problem Solver
Posts: 425
Joined: Fri Dec 09, 2016 7:28 am
Contact:

можно ли повысить приоритет основного процесса

Post by cutecode »

моя десктоповская программа делает много вычислений, там есть собственный интепретатор собственных модулей.
Так как там свой интепретатор, то на слабых процессорах она сильно тормозит, и причем в работе используется, походу, только один процессор, даже если их несколько.
можно ли как то повысить приоритет программы, или заставить работать больше процессоров?
делать отдельные потоки думаю не получится. т.к. пока не выполниться одна функция, другую запускать бесполезно
спасибо
wx 3.1.6 win/mac/linux

regards,
Alexander Saprykin
https://v2.dental-soft.ru
User avatar
T-Rex
Moderator
Moderator
Posts: 1248
Joined: Sat Oct 23, 2004 9:58 am
Location: Zaporizhzhya, Ukraine
Contact:

Re: можно ли повысить приоритет основного процесса

Post by T-Rex »

Повысить приоритет можно, но это не особо действенно будет.
Не стоит также делать приоритет realtime, потому что остальные приложения не будут отвечать на действия пользователя и это еще влияет на отрисовку UI.

Повышение приоритета потока - это чисто нативный функционал, не относящийся к wxWidgets.
Windows решение.
Posix решение (или вот еще вариант).

Заставить работать приложение на всех ядрах можно только если там есть параллельные вычисления. Один поток будет работать на одном ядре. Как вариант, оптимизировать логику и, может, парсить модули параллельно, если это интерпретатор.

Еще вариант - взять клмпилятор от Intel и заморочиться с оптимизациями, иногда это помогает получить значительный прирост производительности, но времени на тонкую настройку сборки может уйти куча + он платный (не помню, есть сейчас бесплатная версия или нет). На YouTube должны быть лекции по настройке компилятора, или там доклады с конференций, тысячи их.

А, и да, можно еще через PowerShell сначала проверить, что это даст.
amk_tt
Earned a small fee
Earned a small fee
Posts: 19
Joined: Sat Nov 28, 2009 4:45 pm
Location: Russia

Re: можно ли повысить приоритет основного процесса

Post by amk_tt »

Поскольку речь идёт об интерпретаторе, есть ещё одна сложность. Интерпретаторы, как правило, куда хуже совмещаются с параллельными потоками, чем нативные программы. В интерпретаторе, как правило, имеется много служебных данных, которые плохо разделяются между потоками.
Хотя. конечно, можно в каждом потоке запустить свой изолированный интерпретатор.

А повышение приоритета, не поможет, пока имеются свободные ресурсы процессора. При интенсивной работе поток и так получает в своё распоряжение ядро целиком.
alys666
Super wx Problem Solver
Super wx Problem Solver
Posts: 329
Joined: Tue Oct 18, 2016 2:31 pm

Re: можно ли повысить приоритет основного процесса

Post by alys666 »

приоритет менять бессмысленно. высокоприоритеные системные потоки и процессы перебивать нельзя, а потоки пользовательские там все твои. если конечно рядом не крутится браузер с видосом. и еще 10 приложений.
если не хватает поизводительности, надо:
1. правильно писать саму аппу
2. паралеллить правильно написанную.
ubuntu 20.04, wxWidgets 3.2.1
alys666
Super wx Problem Solver
Super wx Problem Solver
Posts: 329
Joined: Tue Oct 18, 2016 2:31 pm

Re: можно ли повысить приоритет основного процесса

Post by alys666 »

если там самостройный интерпретатор самостройного языка, в язык надо вводить паралеллелизм, те же треды, и тогда их можно выполнять на копии виртуальной машины в другом потоке... ну и писать на этом языке в стиле паралельного исполнения.
ubuntu 20.04, wxWidgets 3.2.1
User avatar
cutecode
Super wx Problem Solver
Super wx Problem Solver
Posts: 425
Joined: Fri Dec 09, 2016 7:28 am
Contact:

Re: можно ли повысить приоритет основного процесса

Post by cutecode »

да, все самописное.
Спасибо буду думать как лучше сделать.
Теперь я понял что в одном потоке может работать только одно ядро

всем спасибо
wx 3.1.6 win/mac/linux

regards,
Alexander Saprykin
https://v2.dental-soft.ru
Post Reply