Тормоза с перерисовкой контролов после апгрейда до 1.4

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: Тормоза с перерисовкой контролов после апгрейда до 1.4

Сообщение Vadim » 20.05.2015 15:21:06

Согласен с zub'ом. Вы своим Refresh'em (ненужным, к слову сказать ;-) ) исправляли какой-то старый косяк в старом LCL. Стоит ли пенять на то, что Ваш код тормозит на каком-то совершенно ненужном для алгоритма программы действии?
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Тормоза с перерисовкой контролов после апгрейда до 1.4

Сообщение PVOzerski » 20.05.2015 15:22:35

pupsik писал(а):Хм лазарь 1.5, фпс 3.3.1, ну..у и жтк2 = 0 лагов. Т.е. ваш пример не лагает по отрисове. Скачет себе.

С отрубленным Refresh или с работающим?
PVOzerski
постоялец
 
Сообщения: 109
Зарегистрирован: 19.05.2005 13:45:10
Откуда: СПб

Re: Тормоза с перерисовкой контролов после апгрейда до 1.4

Сообщение Vadim » 20.05.2015 15:24:42

PVOzerski писал(а):Можно предположить, что тормозит метод TGraphicControl.Refresh.

TGraphicControl.Refresh пытается захватить монопольно тот кусок канвы, который он собирается перерисовать. TWinControl рисуется сначала в памяти, а потом сразу копируется на канву.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Тормоза с перерисовкой контролов после апгрейда до 1.4

Сообщение zub » 20.05.2015 15:28:48

>>Можно предположить, что тормозит метод TGraphicControl.Refresh
"тормозит" реализация gtk2 бакенда и "искать" надо там
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Re: Тормоза с перерисовкой контролов после апгрейда до 1.4

Сообщение PVOzerski » 20.05.2015 15:39:42

За это время сделал вот что: пересобрал "бегающий" тестик под qt и увидел, что там Refresh просто не работает (нет отрисовки контрола во время "бега"). Рискну предположить, что в Lazarus 1.2.x/GTK2 было так же. Возможно, в ближайшее время проверю на компе со старым Лазарем (на этом переставлять очень не хочется).
PVOzerski
постоялец
 
Сообщения: 109
Зарегистрирован: 19.05.2005 13:45:10
Откуда: СПб

Re: Тормоза с перерисовкой контролов после апгрейда до 1.4

Сообщение pupsik » 20.05.2015 19:45:32

С отрубленным Refresh или с работающим?
И так и эдак. Я попробовал вынести синхонизацию на отрисовку контролов. Мемо заменил стринглистом (вывод в мемо, а работа в стриглисте). Ну..у и слип запихнул в екзекуте (так система "отдохнуть" успевает :)). Да еще не много. Веселее стало скакать. Т.е. не сильно но куда веселее :)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Тормоза с перерисовкой контролов после апгрейда до 1.4

Сообщение PVOzerski » 20.05.2015 20:34:28

Спасибо :) Посмотрю непременно. Правда, если эту штуку буду демонстрировать с Вашими патчами - теперь же на Вас ссылаться придется :) Хоть скажите, как правильно Вас упоминать.
PVOzerski
постоялец
 
Сообщения: 109
Зарегистрирован: 19.05.2005 13:45:10
Откуда: СПб

Re: Тормоза с перерисовкой контролов после апгрейда до 1.4

Сообщение pupsik » 20.05.2015 21:13:38

Да это и патчем назвать трудно. Просто мысли.
Желательно поток отдельно вывести из главного модуля. Плюс пореже "терзайте" мемо (он сильно обидчив, может притормаживать, да и зачем его трогать если он только для показа). И синхронизировать цикл весьму мудрено мусье :)
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Пред.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 220

Рейтинг@Mail.ru