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

Вниз

Утечка памяти в TOpenDialog?   Найти похожие ветки 

 
gosha73   (2007-04-14 15:17) [0]

Привет друзья.
Что-то непонятное творится. Вроде все делаю как положено, а все равно вижу в диспетчере задач, что память неимоверно утекает с каждым кликом на кнопку. Привожу код клика:
procedure TForm1.BitBtn1Click(Sender: TObject);
var  FDlgOpen: TOpenDialog;
begin
 FDlgOpen := TOpenDialog.Create(nil);
 FDlgOpen.Title   := "Open";
 if FDlgOpen.Execute then BitBtn1.Caption := FDlgOpen.FileName;
 FDlgOpen.Free;
end;


User Objects растет на 3,
GDI Objects растет на 9!!!

И вопрос. Что делать ? Где я не прав? :)


 
DrPass ©   (2007-04-14 15:30) [1]


> User Objects растет на 3,
> GDI Objects растет на 9

Может, и есть утечка. Или в TOpenDialog, или в TBitBtn - можно посмотреть. Впрочем, чтобы эта утечка была как-то заметна для ОС, тебе потребуется тысяч двадцать раз по кнопке клацнуть...


 
gosha73   (2007-04-14 15:34) [2]

Ну это все равно не нормально и не может быть чтобы никто на это не обратил внимание. Утечки не происходит если не вызывать FDlgOpen.Execute.
10 раз кликнуть и это уже 90 GDI объектов где-то просто так висят за моим процессом и это не есть хорошо.


 
Чародей ©   (2007-04-14 16:32) [3]

Сколько добавляется GDI объектов столько и убавляется. так что либо твой софт либо ОС притормаживает с очисткой ресурсов


 
gosha73   (2007-04-14 17:19) [4]

Хм. Провел эксперимент на виртуальных машинах с этой же прогой.
1. Win2k русская версия - очищает сразу как надо.
2. WinXP SP2 MUI русская - очищает сразу как надо.

А на моей тачке WinXP SP2 Eng не очищает уже как в течении 15 минут.
Что же может мешать проге очистить ресурсы??? Бред какой-то.
У кого-нибудь есть идеи в чем может быть разница?
У меня никаких твикеров и ничего подобного на системе не стоит, классический вид и всё как обычно...


 
gosha73   (2007-04-14 17:21) [5]

Забыл указать, что у меня лицензионная винда и обновляю сразу как выпускают обновление.


 
Desdechado ©   (2007-04-14 20:32) [6]

try-finally поставь, а?


 
DrPass ©   (2007-04-14 21:16) [7]


> try-finally поставь, а?

А зачем? Исключение-то он бы сразу заметил.

> Что же может мешать проге очистить ресурсы???

Думаю, TOpenDialog представляет оболочку для стандартного виндового диалога из comdlg32.dll. А значит, и вопросы по очистке ресурсов - к соответствующей библиотеке


 
_Аноним   (2007-04-14 23:27) [8]


> А зачем? Исключение-то он бы сразу заметил


На случай ,если оно возникнет


> gosha73


А ты не проверяй тему утечек ресурсов с помощью диспетчера задач, для этой цели существуют другие, правильные, способы


 
Юрий Зотов ©   (2007-04-15 01:12) [9]

> gosha73   (14.04.07 15:17)  

with TOpenDialog.Create(nil) do
try
 Title   := "Open";
 if Execute then
   BitBtn1.Caption := FileName;
finally
 Free
end;

И не будет утечек, гарантированно. А на показания неверных приборов - забейте.


 
gosha73   (2007-04-15 14:27) [10]

Оно уже понятно, что дело не в самой проге, а в системе и нее какое-то странноватое поведение, может зависит от мощнойстей железа или появление бага в обновленной дллке системы, иначе просто незнаю в чем причина.
А подскажите пожалуйста названия верных приборов.
Заранее благодарен.


 
Leonid Troyanovsky ©   (2007-04-15 18:37) [11]


> gosha73   (15.04.07 14:27) [10]

> А подскажите пожалуйста названия верных приборов.

Perfmon.exe

--
Regards, LVT.


 
Yanis ©   (2007-04-16 07:38) [12]


> И не будет утечек, гарантированно.

Почему гарантированно? Из-за try...finally?
Интересно :)


 
Amoeba ©   (2007-04-16 11:32) [13]

> gosha73   (15.04.07 14:27) [10]

> А подскажите пожалуйста названия верных приборов.

MemProof, например.



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

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

Наверх




Память: 0.49 MB
Время: 0.028 c
2-1179521983
style007
2007-05-19 00:59
2007.06.10
опять этот Invalid floating ....


15-1179293278
31512
2007-05-16 09:27
2007.06.10
Опаньки!


3-1174167110
Хан
2007-03-18 00:31
2007.06.10
Нужна помощь. Хотелось бы спросить целеобразно ли это


15-1179138344
Knight
2007-05-14 14:25
2007.06.10
Откуда брать имена служб для OpenService?


15-1178898672
Ringo
2007-05-11 19:51
2007.06.10
Женюсь, ей-богу женюсь, честное, благородное слово!(Паниковский).