QT4.5 и processEvents()

Модератор: Модераторы разделов

Аватара пользователя
SergeyIT
Сообщения: 82
ОС: xUbuntu, MXlinux

QT4.5 и processEvents()

Сообщение SergeyIT »

Перешел с Ubuntu 8.04 на 9.10. Соответственно поставил новый QT 4.5.2 и QTCreator.
При этом столкнулся с интересной проблемой. Есть программа (расчетная), использующая QT4, Qwt5, GSL.
На одной машине работает нормально, а на другой не работает(точнее срабатывет с большой задержкой) метод qApp->processEvents() , который вызывается в глухом цикле (итерации). Причем не работает собранная программа с любого из компьютера (линковка динамическая).
Софт на машине переставлял - не помогло. У кого есть мысль, как победить это.
Извините, я все еще учусь
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: QT4.5 и processEvents()

Сообщение NickLion »

Насколько затратно переделать под многопоточное исполнение?

А так трудно что-то сказать, не сталкивался. Все что могу предложить - отладка с исходниками самого Qt4. Посмотреть, что именно тормозит внутри обработки сообщений. Возможно просто приходит много сообщений (откуда?). Не пробовали на этой же машине с LiveCD запускать (если возможно)? Может аппаратная проблема.
Спасибо сказали:
Аватара пользователя
SergeyIT
Сообщения: 82
ОС: xUbuntu, MXlinux

Re: QT4.5 и processEvents()

Сообщение SergeyIT »

NickLion писал(а):
06.11.2009 09:39
Насколько затратно переделать под многопоточное исполнение?

В общем не хочется заниматься потокостроением, так как это не коммерческий продукт, а просто инструмент для расчета. Да и не особо напрягает подождать пару-тройку секунд (50-500 циклов) для остановки расчета. Просто никогда не сталкивался с подобным за много лет использования разных продуктов.
Посмотрю - может переставлю ОС. Основная у меня Убунту 8.04, а 9.10 поставил для пробы - скоро переходить на новую LTS (10.04) придется.
Кстати отличие 2-х компов небольшое, на котором работает P4 2.8 ГГц 512 Мб, а проблемный Селерон 2.1 ГГц 768 Мб.
Попробую может еще тестовую программку написать.
Может быть и аппаратная проблема - при включении компиза начинает тормозить и отрисовка (на каждой итерации выводятся данные и графики на qwtplot объект)
Извините, я все еще учусь
Спасибо сказали:
Аватара пользователя
SergeyIT
Сообщения: 82
ОС: xUbuntu, MXlinux

Re: QT4.5 и processEvents()

Сообщение SergeyIT »

Вроде понял немного в чем проблема. В цикле на каждой итерации делается перерисовка графиков в объектах QwtPlot. На одной машине видно из-за чего-то кривого очередь приложения полностью не выбирается, или просто не хватает скорости. Сделал отрисовку через 30 итераций - заработало. (Я конечно слегка обнаглел - у меня выполняется около 50 итераций в секунду.).
Извините, я все еще учусь
Спасибо сказали:
Аватара пользователя
SergeyIT
Сообщения: 82
ОС: xUbuntu, MXlinux

Re: QT4.5 и processEvents()

Сообщение SergeyIT »

Забавно. Поигрался с АТИ драйверами (у меня радеон 9600 про) - теперь не работет компиз. Зато тормоза в отрисовке пропали. То есть проблема, похоже, в драйверах для видео.
Извините, я все еще учусь
Спасибо сказали: