Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.04.29;
Скачать: CL | DM;

Вниз

TMemo медленно работает   Найти похожие ветки 

 
Mr. D.   (2007-03-02 23:10) [0]

Программа ведет некие сетевые логи, информации не так уж и много, но TMemo тем не менее ужасно тормозит. Информация в TMemo добавляется строками (Lines.add). И чем больше строк в TMemo, тем визуальнее она все больше тормозит.

Что можно тут поделать?


 
Плохиш ©   (2007-03-02 23:16) [1]


> Что можно тут поделать?

Пиши лог в файл...


 
YurikGL ©   (2007-03-03 00:33) [2]

Если визуально отображать не надо, можно использовать TStringList... Из него можно уже и в файл писать.


 
Германн ©   (2007-03-03 00:59) [3]


> YurikGL ©   (03.03.07 00:33) [2]
>
> Если визуально отображать не надо, можно использовать TStringList.
> .. Из него можно уже и в файл писать.
>

Лучше уж писАть в файл, а при необходимости просмотра из программы, загружать из файла. А то программа слетит и всё что накопилось в Стринглисте, как в прочем и в Мемо, пойдёт псу под хвост.


 
YurikGL ©   (2007-03-03 01:02) [4]


> Германн ©   (03.03.07 00:59) [3]

Тогда уж можно и mySQL поставить и в него писАть...


 
Германн ©   (2007-03-03 01:22) [5]


> YurikGL ©   (03.03.07 01:02) [4]
>
>
> > Германн ©   (03.03.07 00:59) [3]
>
> Тогда уж можно и mySQL поставить и в него писАть...
>

Это, имхо, перебор. А Бритва Оккама у меня всегда при себе. :)


 
YurikGL ©   (2007-03-03 01:29) [6]


> Это, имхо, перебор. А Бритва Оккама у меня всегда при себе.
>  :)

Каждому свое.... кто-то на файликах останавливатся, а кто-то сразу общее решение делает... :P

з.ы. кстати, использование БД ИМХО, наиболее простой в реализации и логичный способ хранения логов...


 
Германн ©   (2007-03-03 01:42) [7]


> YurikGL ©   (03.03.07 01:29) [6]
>
>
> > Это, имхо, перебор. А Бритва Оккама у меня всегда при
> себе.
> >  :)
>
> Каждому свое.... кто-то на файликах останавливатся, а кто-
> то сразу общее решение делает... :P
>
> з.ы. кстати, использование БД ИМХО, наиболее простой в реализации
> и логичный способ хранения логов...
>

Не буду спорить на таком уровне. Тут ты прав. И многие так и делают. Но на уровне сабжа это всё-таки перебор.


 
Mr. D.   (2007-03-03 02:13) [8]

Круто, конечно, но я не верю, что нельзя побороть тормознутость TMemo.


 
Германн ©   (2007-03-03 02:23) [9]


> Mr. D.   (03.03.07 02:13) [8]
>
> Круто, конечно, но я не верю, что нельзя побороть тормознутость
> TMemo.
>

Ну нет у TMemo другой тормознутости, кроме "визуализации многих тысяч строк"! А она, имхо, не поборима. Может тормоза где-то в другом месте твоей программы?


 
Anatoly Podgoretsky ©   (2007-03-03 07:54) [10]

> Mr. D.  (02.03.2007 23:10:00)  [0]

А сколько миллионов строк в мемо?


 
Belorus ©   (2007-03-03 10:46) [11]

Миллионы не нужны. После того как там есть уже тысяч 100, добавление работает ужасно.


 
Правильный Вася   (2007-03-03 11:40) [12]

что-то мне припоминается у мемо были ограничения на 64 кб


 
Mr. D.   (2007-03-03 15:04) [13]

Вы о чем, господа! Да она сразу начинает тормозить, если строки быстро добавлять относительно. Причем, визуально кажется, что все время на скрол тратится, то есть добавляется строчка, а потом относительно медленно идет прокрутка к концу TMemo, может из-за этих эффектов красивой прокрутки все и тормозит - фиг знает.

Но как-то хочется ускорить.


 
Правильный Вася   (2007-03-03 15:26) [14]

а ты добавляй не в конец, а сверху


 
Sam Stone ©   (2007-03-04 11:49) [15]


> а ты добавляй не в конец, а сверху

это чтобы кучу строк дополнительно сдвигать?)


 
DrPass ©   (2007-03-04 15:15) [16]


> Да она сразу начинает тормозить, если строки быстро добавлять
> относительно

Ну, вообще-то да - при добавлении новой строчки выполняется полная перерисовка всего содержимого. Для того и придуманы Memo.Lines.BeginUpdate/EndUpdate


 
GrayFace ©   (2007-03-04 17:51) [17]

Sam Stone ©   (04.03.07 11:49) [15]
это чтобы кучу строк дополнительно сдвигать?)

На уровне VCL без разницы, куда вставлять.

Может использовать TListBox? Еще есть TSynEdit - возможно он подойдет.

P.S.
Mr. D.   (03.03.07 2:13) [8]
Круто, конечно, но я не верю, что нельзя побороть тормознутость TMemo.

Зря не веришь, Memo - очень кривая штука (точнее не Memo, а Multiline Edit, т.к. кривость именно в WinAPI). Чтобы добавить парочку бызовых для нормальных редакторов вещей, мне пришлось так извращаться...


 
zap8   (2007-03-05 01:44) [18]

1.Писать в файл
2.Читать в виртуальный ListView,  отображать только те строки которые "вмещаются" в канвас ListView при прокрутке


 
Германн ©   (2007-03-05 02:58) [19]


> Mr. D.   (03.03.07 15:04) [13]
>
> Вы о чем, господа! Да она сразу начинает тормозить, если
> строки быстро добавлять относительно. Причем, визуально
> кажется, что все время на скрол тратится, то есть добавляется
> строчка, а потом относительно медленно идет прокрутка к
> концу TMemo, может из-за этих эффектов красивой прокрутки
> все и тормозит - фиг знает.
>
> Но как-то хочется ускорить.
>

Лично я - о полном бреде использования TMemo и любых других визуальных компонент в подобном случае.



Страницы: 1 вся ветка

Текущий архив: 2007.04.29;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.072 c
15-1175257559
Empleado
2007-03-30 16:25
2007.04.29
С наступающим 1 апреля!


2-1175792542
DelphiLexx
2007-04-05 21:02
2007.04.29
Как перехватить момент открытия PopupMenu


2-1175788232
likenoother
2007-04-05 19:50
2007.04.29
опять несколько вопросов :)


2-1176388173
waif
2007-04-12 18:29
2007.04.29
загрузка из Access


15-1174003131
Германн
2007-03-16 02:58
2007.04.29
Опять "футбольная тема"