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

Вниз

Странно ведет себя программа...   Найти похожие ветки 

 
Jolik ©   (2006-03-28 19:23) [0]

моя программа неограмниченно жрет память :)
но! при сворачивании (минимизации) окна  высвобождается почти вся "съеденная" память. Потом она опять начинает расти (неограниченно и намного быстрее, огромными кусками) пока не станет такой как была до сворачивания. Свернешь опять -снова падает до минимума и так далее...

Чтобы это могло быть - подскажите!


 
Kolan ©   (2006-03-28 19:40) [1]

Если она жрет ее во время работы - то это утечка. Используй MemProof, чтобы найти её.

А если тебя волнует тот факт, что при сворачивании память умень шается, то не парься.


 
Jolik ©   (2006-03-28 20:07) [2]

ну так если у меня утечка (сотни мегов) - то как память возвращается при сворачивании?


 
Kolan ©   (2006-03-28 20:16) [3]

Да не куда она не возврашается. Если утечка есть, то есть.

А если при сворачивании оно уменьшается, то это не очем ни говорит. Сверни Delphi и посмотри. К сожалению точно обяснить не могу... :)

PS
 Конечно если прога жрет сотни мегов, то это скорее всего утечка.... Как её поймать смотри [1]


 
Старик   (2006-03-29 08:47) [4]

Весьма вероятно, что накосячил в работе с указателями либо где-нибудь в главном цикле(буде такой имеется) постоянно создаешь экзмепляры классов. У меня такое было.
Так что включай трассировку и, пошагово выполняя программу, отслеживай в диспетчере задач изменение кол-ва памяти. На какой строке память утекла - оттуда и ноги растут.


 
Amoeba ©   (2006-03-29 10:13) [5]


> отслеживай в диспетчере задач изменение кол-ва памяти.

Негодный способ.


> Потом она опять начинает расти (неограниченно и намного
> быстрее, огромными кусками) пока не станет такой как была
> до сворачивания. Свернешь опять -снова падает до минимума
> и так далее...

Это еще ничего не говорит о наличии утечек памяти. Диспетчер лишь показывает, сколько памяти ОС выделила процессу. При сворачивании система может забрать эту память.

Так что если нужно искать утечки (в рассматриваемом случае они если есть, то отнюдь не столь колоссальные) - то только спецсредствами (тот же MemProof), но ни коим образом не с помощью диспетчера задач, как предлагает > Старик   (29.03.06 08:47) [4]


 
Старик   (2006-03-30 09:20) [6]

Amoeba:
Ну почему же негодный? :)
У меня работало. Хотя согласен, memproof посерьезней будет :)


 
Amoeba ©   (2006-03-30 16:53) [7]


> Старик   (30.03.06 09:20) [6]
> Amoeba:
> Ну почему же негодный? :)
> У меня работало. Хотя согласен, memproof посерьезней будет
> :)

И не просто посерьезнее, он покажет действительные утечки памяти и места в коде где они возникают, а не кажущиеся как ProcessManager.

Диспетчер показывает всего лишь объем памяти выделенной на данный момент системой в распоряжение приложения, но вовсе не объем реально использованный приложением.

Этот вопрос не раз обсуждался в конференции. Если покопаешься, то найдешь исчерпывающее объяснение.



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

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

Наверх




Память: 0.46 MB
Время: 0.044 c
2-1143830677
dera
2006-03-31 22:44
2006.04.16
БД Access. Есть ключевое поле id типа Счетчик.


15-1143213902
Juice
2006-03-24 18:25
2006.04.16
Альтернатива TImageList


3-1140518841
dreamse
2006-02-21 13:47
2006.04.16
Непонятки с хранимой процедурой


2-1143910155
He3Hauka
2006-04-01 20:49
2006.04.16
TreeView


1-1141998060
MixAnOL
2006-03-10 16:41
2006.04.16
DoubleBuffered:=true





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