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

Вниз

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

 
Ajax   (2003-06-18 21:03) [0]

Почему все время растет объем памяти, занимаемой программой??? Создаваемые объекты уничтожаю, что еще нужно делать???


 
Pat   (2003-06-18 21:06) [1]

>что еще нужно делать
еще уничтожать объекты...пока память не восстановится :-))


 
Anatoly Podgoretsky   (2003-06-18 21:43) [2]

У тебя ошибка в программе.


 
Ученик   (2003-06-18 22:17) [3]

Наверно, поможет, http://www.automatedqa.com/downloads/memproof.asp


 
Vladymir   (2003-06-18 22:52) [4]

Мало делать Объект.Free, надо еще и Объект:= nil;


 
VMcL   (2003-06-19 01:44) [5]

>Vladymir (18.06.03 22:52)
>Мало делать Объект.Free, надо еще и Объект:= nil;

LOL! Долго думал, пока надумал такое ляпнуть?


 
Armen   (2003-06-19 02:41) [6]

Не может быть...


 
Ajax   (2003-06-19 17:58) [7]

Запускаю прогу - 2,9 мега в памяти, один раз использую ShellExecute - уже 3,9 и даже не думает освобождаться...

Я так предполагаю, что дело в подгружаемых Dll-ках. Если я прав, то как этого избежать?


 
Семен Сорокин   (2003-06-19 18:03) [8]

dll := LoadLibrary("ClockLib.dll");
try
//bla-bla-bla
finally
if dll <> 0 then
FreeLibrary(dll)
end;


 
Ajax   (2003-06-19 22:15) [9]

Я понимаю, что это невозможно, но диспетчер задач говорит мне обратное.

Ситуация такая:
Пустая форма, по щелчку на ней через ShellExecute запускается calc.exe.
Как только щелкаю по форме, выделяется пару мегов памяти. Объем не меняется. Но при сворачивании-восстановлении окна объем падает до 300 кб!!! (хотя при запуске прога занимает положенные ее 2 мега).

ЧТО ЭТО?!?!?!?!?!?!

PS: Могу выложить код и экзешник...


 
Reanimator   (2003-06-20 02:38) [10]

У меня происходит нечто подобное. Есть главная форма, и при нажатии на кнопку, я созаю форму с какимито контролами на ней, после создания формы выделяется память, но после закрытия формы и Форма.Free память не освобождается. Если после всего этого создать эту форму еще раз то количество занятой памяти не растет. После закрытия приложения вся память которая была занята программой успешно освобождается.
Присоеденяюсь к Ajax, я в полном недорозумении. Так должно быть(ведь в конце концов память освобождается) или чтото серьезно не так?


 
Спрашивающий   (2003-06-20 02:49) [11]

Могу поспорить что даже в идеально написанной программе с точки зрения высвобождения памяти память все равно полностью освобождаться не будет. Проведите экспиримент запускайте много раз и закрывайте какие-нибудь авторитетные программы которые уже вылизали тысячу раз и посмотрите на поведение памяти после их закрытия я думаю вывод Вы сделаете. Все дело в операционке и алгоритме ее функционирования.


 
Reanimator   (2003-06-20 12:35) [12]

2 Спрашивающий
Точно, проверил на IE? WinAmp,и WMP. Все себя ведут в точности как моя прога. Значит так и должно быть :)


 
han_malign   (2003-06-20 12:45) [13]

Не забывайте про BorlandMM - который не спешит вернуть системе, с таким трудом, отвоеванную память, особенно, если она еще и фрагментирована... Да и сама система кеширует операции выделения/освобождения памяти(тем более, что ей еще со свапом разобраться надо, в отложенном режиме).


 
Anatoly Podgoretsky   (2003-06-20 13:31) [14]

Reanimator (20.06.03 02:38)
От сюда делаем вывод, что никакой учечки памяти нет.


 
Reanimator   (2003-06-20 14:38) [15]

Anatoly Podgoretsky © (20.06.03 13:31)
Именно к этому выводу я и пришел.


 
Vladymir   (2003-06-21 02:30) [16]

> VMcL © (19.06.03 01:44)
Объясни, пожалуйста, в чем я неправ.
Ежели, скажем освободить форму ч/з Free? без присвоения ей nil? А потом создать ее снова?



 
WarLord   (2003-06-21 09:49) [17]


> Ежели, скажем освободить форму ч/з Free? без присвоения
> ей nil? А потом создать ее снова?

ничего не будет страшного
nil нужно присваивать только для проверки существования формы


 
Anatoly Podgoretsky   (2003-06-21 10:33) [18]

Vladymir (21.06.03 02:30)
На здоровье, зачем присваивать то, делать что ли нечего или ты пытаешься повторно использовать переменную, ну так для этого есть более безопасные методы, например объект Screen



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

Форум: "Основная";
Текущий архив: 2003.07.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.008 c
14-7710
anbezr
2003-06-17 17:10
2003.07.03
Проблема с TServerSocket


14-7678
Кен
2003-06-16 02:40
2003.07.03
Ищу функции для приближённого сравнения картинок.


1-7469
AndreyAs
2003-06-20 16:26
2003.07.03
Как отследить нажатие мышью вне модальной формы


1-7539
EgorKA
2003-06-19 01:45
2003.07.03
Выделение строки в ListBox правой кнапой мышки


3-7318
abc
2003-06-08 23:52
2003.07.03
как сделать так что бы при вводе данных в DBGrid первая буква...





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