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

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

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

Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

Согласен с zub'ом. Вы своим Refresh'em (ненужным, к слову сказать ;-) ) исправляли какой-то старый косяк в старом LCL. Стоит ли пенять на то, что Ваш код тормозит на каком-то совершенно ненужном для алгоритма программы действии?
PVOzerski
постоялец
Сообщения: 109
Зарегистрирован: 19.05.2005 13:45:10
Откуда: СПб
Контактная информация:

Сообщение PVOzerski »

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

С отрубленным Refresh или с работающим?
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

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

TGraphicControl.Refresh пытается захватить монопольно тот кусок канвы, который он собирается перерисовать. TWinControl рисуется сначала в памяти, а потом сразу копируется на канву.
zub
долгожитель
Сообщения: 2889
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

>>Можно предположить, что тормозит метод TGraphicControl.Refresh
"тормозит" реализация gtk2 бакенда и "искать" надо там
PVOzerski
постоялец
Сообщения: 109
Зарегистрирован: 19.05.2005 13:45:10
Откуда: СПб
Контактная информация:

Сообщение PVOzerski »

За это время сделал вот что: пересобрал "бегающий" тестик под qt и увидел, что там Refresh просто не работает (нет отрисовки контрола во время "бега"). Рискну предположить, что в Lazarus 1.2.x/GTK2 было так же. Возможно, в ближайшее время проверю на компе со старым Лазарем (на этом переставлять очень не хочется).
pupsik
энтузиаст
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13
Контактная информация:

Сообщение pupsik »

С отрубленным Refresh или с работающим?
И так и эдак. Я попробовал вынести синхонизацию на отрисовку контролов. Мемо заменил стринглистом (вывод в мемо, а работа в стриглисте). Ну..у и слип запихнул в екзекуте (так система "отдохнуть" успевает :)). Да еще не много. Веселее стало скакать. Т.е. не сильно но куда веселее :)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
PVOzerski
постоялец
Сообщения: 109
Зарегистрирован: 19.05.2005 13:45:10
Откуда: СПб
Контактная информация:

Сообщение PVOzerski »

Спасибо :) Посмотрю непременно. Правда, если эту штуку буду демонстрировать с Вашими патчами - теперь же на Вас ссылаться придется :) Хоть скажите, как правильно Вас упоминать.
pupsik
энтузиаст
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13
Контактная информация:

Сообщение pupsik »

Да это и патчем назвать трудно. Просто мысли.
Желательно поток отдельно вывести из главного модуля. Плюс пореже "терзайте" мемо (он сильно обидчив, может притормаживать, да и зачем его трогать если он только для показа). И синхронизировать цикл весьму мудрено мусье :)
Ответить