Форум: "Основная";
Текущий архив: 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