Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Qwt] Проблемы с replot() - сильно тормозит. 
:(
    Опции темы
Elfet
Дата 22.3.2010, 20:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Приветствую! 

Столкнулся с проблемой при использовании Qwt. За основу взял пример из qwt  - cpuplot. Вначале он работал хорошо, но потом неожиданно программа стала закрываться, начал дебажит - и ошибка исчезла. Теперь другая проблема, вызываю функцию QwtPlot::replot() - она тормозит программу  smile 
Код

void Plot::AddData(double x, double y)
{
    for ( int i = dataCount; i > 0; i-- )
    {
        for ( int c = 0; c < CountOfPlotData; c++ )
        {
            if ( i < HISTORY )
            {
                data[c].x[i] = data[c].x[i-1];
                data[c].y[i] = data[c].y[i-1];
            }
        }
    }

    data[SelectedElement].x[0] = x;
    data[SelectedElement].y[0] = y;

    if ( dataCount < HISTORY )
        dataCount++;

    for ( int c = 0; c < CountOfPlotData; c++ )
    {
        data[c].curve->setRawData(data[c].x, data[c].y, dataCount);
    }

    replot();
}


В чём тут может быть дело?

Заранее спасибо!


--------------------
PM MAIL WWW Skype   Вверх
djamshud
Дата 22.3.2010, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 5
Всего: 39



Тормозит всегда или когда данных много? Если второе, включите агрегацию.


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
Elfet
Дата 22.3.2010, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



А как её включить?


--------------------
PM MAIL WWW Skype   Вверх
djamshud
Дата 22.3.2010, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 5
Всего: 39



Посмотреть документацию на предмет fitted/fitter. Точнее не вспомню, как делал.

Добавлено через 2 минуты и 55 секунд
И, на всякий случай, если вдруг у вас он включен, выключить автоперерисовку (что-то про AutoReplot).


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
W4FhLF
Дата 23.3.2010, 04:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 4
Всего: 121



Включить кеширование.

Цитата

enum QwtPlotCurve::PaintAttribute 


Attributes to modify the drawing algorithm.

PaintFiltered
Tries to reduce the data that has to be painted, by sorting out duplicates, or paintings outside the visible area. Might have a notable impact on curves with many close points. Only a couple of very basic filtering algos are implemented.
ClipPolygons
Clip polygons before painting them. In situations, where points are far outside the visible area (f.e when zooming deep) this might be a substantial improvement for the painting performance ( especially on Windows ).

The default is, that no paint attributes are enabled.


Убрать AntiAliasing если это непринципиально.

Отключить первый параметр:

Цитата

enum QwtPlotCanvas::PaintAttribute 


Paint attributes. 

PaintCached
Paint double buffered and reuse the content of the pixmap buffer for some spontaneous repaints that happen when a plot gets unhidden, deiconified or changes the focus. Disabling the cache will improve the performance for incremental paints (using QwtPlotCurve::draw).

PaintPacked
Suppress system background repaints and paint it together with the canvas contents. Painting packed might avoid flickering for expensive repaints, when there is a notable gap between painting the background and the plot contents.

The default setting enables PaintCached and PaintPacked


В общем доки читаем. 


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
Elfet
Дата 24.3.2010, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Ок, спасибо! Буду разбираться! Мне совсем нельзя что бы из-за графиков программа полетела. :(


--------------------
PM MAIL WWW Skype   Вверх
Elfet
Дата 24.3.2010, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Поставил
Код

setAutoReplot(false);

стало лучше, но всё равно притормаживает интерфейс. не могу понять почему :(


--------------------
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.4820 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.