Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2007.04.29;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.038 c
6-1162281007
progmax
2006-10-31 10:50
2007.04.29
сетевой диск фтп сервера


2-1175845690
=Teddy=
2007-04-06 11:48
2007.04.29
Как определить возраст папки?


2-1176126525
FOXi
2007-04-09 17:48
2007.04.29
Передача данных в com порте


9-1148749074
Зм1й
2006-05-27 20:57
2007.04.29
Венера


15-1175527355
Mozart
2007-04-02 19:22
2007.04.29
проблемы с bde





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский