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

Вниз

Утечка памяти в 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.04 c
2-1179418874
Skynet_
2007-05-17 20:21
2007.06.10
Двойной щелчек по выделенной строке в DBGride


15-1179142527
Knight
2007-05-14 15:35
2007.06.10
Прога контроля прокси...


10-1133359168
AndDem
2005-11-30 16:59
2007.06.10
Печать многих документов в Word


1-1174323541
_artur
2007-03-19 19:59
2007.06.10
Сохранить TPersistent который часть TComponent


11-1161345725
Thaddy
2006-10-20 16:02
2007.06.10
Vista OpenSaveDialog





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский