memo - утечка памяти

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

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

Ответить
serg_iv
постоялец
Сообщения: 276
Зарегистрирован: 15.10.2005 18:45:46
Откуда: Миасс

memo - утечка памяти

Сообщение serg_iv »

Наткнулся вот - в уже работающем проекте...
Примерно два раза в сутки программу приходилось перезагружать, так как она начинала как-то странно работать.
Абсолютно случайно открыл системный монитор, смотрю - прога занимает 187 Мб памяти, перезагружаю 4,8 Мб.
Через некоторое время размер занимаемой памяти опять увеличивается.
Провел расследование, оказалось компонент memo. (Хотя может это я туплю), но все же прошу проверить:
Пустая форма на нее кладем таймер и memo.
Обработку событий в таймере ставим в 10.
код:

Код: Выделить всё

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  memo1.Clear;
  memo1.Lines[0]:= 'привет';
  memo1.Lines[1]:='от старых штиблет';
end;

Примерно через 5 минут размер памяти занимаемый программой увеличился на 1 Мб, смотрел в гномовском системном мониторе.
ubuntu 8.04 Lazarus 0.9.25 сборка 20080528 fpc2.2
Аватара пользователя
Brainenjii
энтузиаст
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Сообщение Brainenjii »

Хм, действительно растёт, heaptrc ничего не находит...
Аватара пользователя
NXP
постоялец
Сообщения: 187
Зарегистрирован: 02.01.2008 15:11:56
Откуда: Воронеж
Контактная информация:

Сообщение NXP »

memo действительно кривой. Работает очень медленно (особенно при единовременной загрузке больших кусков текста) :(
serg_iv
постоялец
Сообщения: 276
Зарегистрирован: 15.10.2005 18:45:46
Откуда: Миасс

Сообщение serg_iv »

Ну раз так, киньте кто нибудь в багрепорт, что ли. А то с моим английсим трудновато будет.
Аватара пользователя
*vmr
постоялец
Сообщения: 168
Зарегистрирован: 08.01.2007 00:46:07
Откуда: Киев
Контактная информация:

Сообщение *vmr »

>memo1.Lines[0]:= 'привет';
>memo1.Lines[1]:='от старых штиблет';
А разве так можно?
Почему не memo1.Lines.Add('привет') ; ?
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

*vmr писал(а):А разве так можно?

я тоже думаю что нельзя и ругаться должен, а вот почему не ругается, это уже другой вопрос.
Аватара пользователя
Brainenjii
энтузиаст
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Сообщение Brainenjii »

Я делал через Add, но утечка все-равно есть ^_^
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

кто нибуть отправил в трекер ? чтоб не дублировать.

Добавлено спустя 2 минуты 50 секунд:
кажется нашел подобный 11131

Добавлено спустя 4 минуты 55 секунд:
serg_iv
уточни у тя какой виджет, если есть возможность проверь на разных.
wavebvg
постоялец
Сообщения: 355
Зарегистрирован: 28.02.2008 03:57:35

Сообщение wavebvg »

На gtk2 точно, под qt нет.
serg_iv
постоялец
Сообщения: 276
Зарегистрирован: 15.10.2005 18:45:46
Откуда: Миасс

Сообщение serg_iv »

Я наблюдал это на gtk2
Ответить