powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / backup/restor, GUI protocol, TMemo
9 сообщений из 9, страница 1 из 1
backup/restor, GUI protocol, TMemo
    #39535377
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По сравнению с выводом протокола в файл - вывод на экран во-первых безумно медленный, во вторых иногда теряет данные.

Но вопрос про скорость.

Как там сделано, как только от сервиса B&R приходит строка, она тут же добавляется в TMemo ?

Можно переделать на внутренний буфер (TList<string>, на худой конeц TStringList) и вывод на экран в TMEmo 3-4 раза в секунду через TTimer ?

Обычно это ускоряет работу в несколько раз, когда много текста вбрасывается в TMemo по ходу процесса.
...
Рейтинг: 0 / 0
backup/restor, GUI protocol, TMemo
    #39535421
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

мне казалось что FB сам там буферизирует вывод и отдаёт пачками
...
Рейтинг: 0 / 0
backup/restor, GUI protocol, TMemo
    #39535546
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

попробуй сделать БД, в которой будет, например, 1000 таблиц и 1000 пользователей, и у каждого пользователя на каждую таблицу есть грант

потом посмотри скорость рестора в IBE с детальным протоколом - сравнительно в файл и на экран
...
Рейтинг: 0 / 0
backup/restor, GUI protocol, TMemo
    #39535564
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на всякий случай, пример на коленке вывода в TMemo "с фиксированным FPS"

https://stackoverflow.com/a/39099679/976391
...
Рейтинг: 0 / 0
backup/restor, GUI protocol, TMemo
    #39535759
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AriochМожно переделать на внутренний буфер (TList<string>, на худой конeц TStringList) и вывод на экран в TMEmo 3-4 раза в секунду через TTimer ?

Оптимизация ради оптимизации. Нафиг.
...
Рейтинг: 0 / 0
backup/restor, GUI protocol, TMemo
    #39535891
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpertAriochМожно переделать на внутренний буфер (TList<string>, на худой конeц TStringList) и вывод на экран в TMEmo 3-4 раза в секунду через TTimer ?

Ускорение работы в 3-4 раза ради ускорения работы. Нафиг.

Любопытный подход.
...
Рейтинг: 0 / 0
backup/restor, GUI protocol, TMemo
    #39536042
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AriochУскорение работы в 3-4 раза

В некоторых случаях. Я тебе больше скажу: отключив вывод вообще, в тех же случаях можно получить ускорение в несколько десятков раз. А для оптимизации вывода в TMemo не нужны никакие таймеры с внутренними буферами. Достаточно Lines.BeginUpdate/EndUpdate дергать умеючи, ибо тормоза связаны с отрисовкой содержимого редактора, а вовсе не с добавлением строк в него.
Так что, в принципе, ты прав: можно и оптимизировать.
...
Рейтинг: 0 / 0
backup/restor, GUI protocol, TMemo
    #39536100
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с таймером лучше по двум причинам

1) биологические ограничения, если обновлять 3, максимум 4 раза в секунду - человек что-то видит. А если чаще - сливается текст.

2) А как ты "Lines.BeginUpdate/EndUpdate дергать умеючи" будешь делать ? через GetTickCount? через счетчик добавленных, но не выведенных на экран строк ? Да ещё после окончания процесса надо будет понять, ножно EndUpdate или не нужно вызывать.

В общем-то ты прав, можно по разному буфферизацию и троттлинг сделать. На мой взгляд - TTimer + TList<string> / TThreadList<string> проще и понятнее. Но это только один изв ариантов, конечно же.
...
Рейтинг: 0 / 0
backup/restor, GUI protocol, TMemo
    #39536139
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch2) А как ты "Lines.BeginUpdate/EndUpdate дергать умеючи" будешь делать ? через GetTickCount? через счетчик добавленных, но не выведенных на экран строк ? Да ещё после окончания процесса надо будет понять, ножно EndUpdate или не нужно вызывать.


1. Через GetTickCount.
2. property UpdateCount: Integer read FUpdateCount
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / backup/restor, GUI protocol, TMemo
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]