crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Высоко приоритетный поток, как сделать?
MishaUA
  опции профиля:
сообщение 30.9.2017, 20:11
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 185
Регистрация: 28.4.2013
Пользователь №: 3810

Спасибо сказали: 13 раз(а)




Репутация:   0  


Недавно создавал тему, в которой писал о подключении матричного индикатора.
Суть в том, что отрисовка должна происходить очень быстро, я ещё сделал в отдельном потоке (QThread в run), задержка там только одна на 50мкс, т.е., процесс потребляет довольно много процессорного времени, а конкретно - ~86% (проц 4 ядерный), это при QApplication, а с QCoreApplication было почему-то 100%, хоть в теории, QApplication потребляет больше ресурсов.
Отрисовка изначально происходит нормально, но периодически (раз в пару мин) экран начинает мерцать, при этом нагрузка на том ядре падает примерно до 40% и через 2-5 сек мерцать перестает и до >80% нагружается совершенно другое ядро. Походу, процесс каким-то образом перепрыгнул на другое ядро.
процесс запускаю как QThread::HighestPriority, а саму прогу с опцией nice --20 (хоть реально большой приоритет нужен не всей программе, а только одному процессу).
Так же, мерцать всегда начинает когда захожу по ssh и логинюсь.

Можно ли как-то сделать этот процесс со "сверхвысоким" приоритетом?
Спасибо!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
MishaUA
  опции профиля:
сообщение 4.10.2017, 15:58
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 185
Регистрация: 28.4.2013
Пользователь №: 3810

Спасибо сказали: 13 раз(а)




Репутация:   0  


Вся матрица разделена на 16 частей и включенной может быть только одна с его частей, для нормального отражения надо поочередно отображать эти части с большой скоростью, вот интервал между отражениями - 50мкс. Условно говоря, экран обновляется подлостью 1000/(0,5*16)=125 раз в секунду.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- MishaUA   Высоко приоритетный поток, как сделать?   30.9.2017, 20:11
- - Iron Bug   есть сильное ощущение, что ты там что-то принципиа...   30.9.2017, 21:43
- - MishaUA   Так я и не говорил, что грузит все ядра, грузит то...   30.9.2017, 22:22
- - Iron Bug   да даже одно ядро такой задачей загрузить - это на...   1.10.2017, 17:45
- - MishaUA   При том, что в потоке постоянно крутится цикл с ед...   2.10.2017, 10:07
- - Iron Bug   нет, постоянно крутящийся цикл с задержкой в 50 us...   2.10.2017, 20:35
- - MishaUA   Вся матрица разделена на 16 частей и включенной мо...   4.10.2017, 15:58
|- - Iron Bug   Цитата(MishaUA @ 4.10.2017, 17:58) Вся ма...   4.10.2017, 21:08
- - MishaUA   даже при задержке 100, и 200 мкс матрица периодиче...   5.10.2017, 11:31
- - Алексей1153   MishaUA, можно даже с обновлением раз в секунду с...   6.10.2017, 9:12
- - MishaUA   Вы говорите о загрузке данных в контроллер дисплея...   6.10.2017, 9:46
- - Iron Bug   то есть, у тебя нет GPU, а CPU выводит графику нап...   6.10.2017, 20:44
- - MishaUA   Да, так и есть, графику выводит CPU и потоку, кото...   6.10.2017, 20:50
- - Iron Bug   да, но тогда все расчёты надо из этого потока убир...   6.10.2017, 23:02
- - MishaUA   там из расчетом только вычисление положения пиксел...   7.10.2017, 14:27
- - MishaUA   В общем, в процессе экспериментов оказалось, что м...   9.10.2017, 15:43
- - MishaUA   заменил usleep нопами, теперь работает как надо)))...   12.10.2017, 14:34
- - Iron Bug   ты что-то принципиально неправильное делаешь. сист...   12.10.2017, 21:21
- - MishaUA   А как система может знать, как часто надо обновлят...   12.10.2017, 22:32
- - Алексей1153   MishaUA, рисуется кадр - столько времени, сколько ...   13.10.2017, 9:12
- - MishaUA   Кадр не может полностью за раз отрисоваться, однов...   13.10.2017, 11:43
- - Алексей1153   MishaUA, значит, это недостаток железяки. Нужно ...   14.10.2017, 7:56
- - MishaUA   В таком случае надо было бы делать контроллер на к...   24.10.2017, 14:44


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 24.11.2024, 10:43