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

Вниз

Отлов MemLeak ов   Найти похожие ветки 

 
pasha_golub ©   (2008-07-01 18:46) [0]

У меня сегодня звездный день.

Пользователь утверждает, что в компоненте наследнике TConnection есть утечка памяти. Приложение простейшее. По таймеру делается Open, а затем по тому же таймеру Close.

На вопрос с какого бодуна он взял мемлик, тот сослался что смотрел в Task Manager и видел как увеличивается значение Mem Usage. Я прогнал это чудо в профайлере. Без утечек.

1. А чего оно действительно растет это значение?
2. Шо мне сказать другу-пользователю?


 
Ega23 ©   (2008-07-01 18:51) [1]


> 1. А чего оно действительно растет это значение?


А оно растёт? Набери статистику за ночь. Убери таймер, сделай бесконечный цикл
Count := 0;
while (true) do
begin
 inc(Count);
 try
   try
     Open;
   except
      Log(...)
   end;
 finally
   Close;
 end;
end;


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


> 2. Шо мне сказать другу-пользователю?


Если опыт будет ок - предложи ему повторить.


 
Правильный-Вася   (2008-07-01 18:51) [2]


>  видел как увеличивается значение Mem Usage

но не видел, как оно уменьшается
тем более не указано, какую именно колонку смотрел


 
pasha_golub ©   (2008-07-01 18:54) [3]

Колонка так и называется Mem Usage


 
pasha_golub ©   (2008-07-01 18:57) [4]


> Ega23 ©   (01.07.08 18:51) [1]
>
>


> А оно растёт?

Ну слегонца, на 40 переподключений 4Кб в колонке увеличение.


 
Ega23 ©   (2008-07-01 19:00) [5]


> Ну слегонца, на 40 переподключений 4Кб в колонке увеличение.


проверь за ночь.


 
Сергей М. ©   (2008-07-01 19:11) [6]


> Приложение простейшее. По таймеру делается Open, а затем
> по тому же таймеру Close


Смешной контраргумент.


 
pasha_golub ©   (2008-07-01 19:24) [7]


> Сергей М. ©   (01.07.08 19:11) [6]

Это его аргумент.

Я как думаю, внутре у нее неонка ведь, то бишь создаются\уничтожаются всякие вспомогательные штукенции при коннекте. Может быть это товарищ Менеджер Памяти из-за ее так сказать фрагментарности просит ему выделить еще?


 
Сергей М. ©   (2008-07-01 19:31) [8]


> pasha_golub ©   (01.07.08 19:24) [7]
>
>


Тады пардон).. Я неправильно понял.


> внутре у нее неонка ведь


У кого "нее" ? Что еще за "неонка" ?

Ты вообще о чем сейчас - о каком-то там чужом "таймере" или о своем (?) компоненте, на работу которого в части мемликов жалуется тот самый юзер ?


 
pasha_golub ©   (2008-07-01 19:34) [9]

Внутри процедуры Connect, создаются параметры всякие и заполняются, проперти запрашиваются\читаются. Для этих всех дел иногда создаются классы, например TStringList, иногда просто GetMem, а после него FreeMem.

Так вот может из-за частых вызовов Менеджер Памяти не может адекватно выделить кусок памяти и просит его у системы, что отображается в Таск Менеджере?


 
Ega23 ©   (2008-07-01 19:36) [10]


> Так вот может из-за частых вызовов Менеджер Памяти не может
> адекватно выделить кусок памяти и просит его у системы,
> что отображается в Таск Менеджере?


Очень может быть. При большой статистике в какой-то момент должно на асимптотику выйти. Ну или снизиться от максимума и тоже на асимптотику выйти.


 
pasha_golub ©   (2008-07-01 19:49) [11]

Наверное таки запущу на ночь.


 
pasha_golub ©   (2008-07-01 19:52) [12]

Кхе, прикольно только что вышло. Запустил показало что выкушало 7 780K памяти. Собрался уходить, свернул в панель... 1896К


 
Ega23 ©   (2008-07-01 19:57) [13]


> Собрался уходить, свернул в панель... 1896К


Ну так. Окно-то не перерисовываеццо...  :)


 
Игорь Шевченко ©   (2008-07-01 20:04) [14]

скажи пользователю, что если ему нефиг делать, кроме как за Task Manager сделать, то его надо уволить. Я вполне серьезно, были прецеденты


 
Сергей М. ©   (2008-07-01 20:14) [15]


> Внутри процедуры Connect, создаются параметры всякие и заполняются,
>  проперти запрашиваются\читаются. Для этих всех дел иногда
> создаются классы, например TStringList, иногда просто GetMem,
>  а после него FreeMem.


Ты на вопрос в [9] ответь - компонент твой или не твой ?)

К чему вся эта ботва, если оно, imho, и по сей момент непонятно ?)


 
Rouse_ ©   (2008-07-01 20:17) [16]


> Собрался уходить, свернул в панель... 1896К

Паш, а что ты ожидал увидеть? :) Это стандартное поведение, система дернула вызов SetProcessWorkingSetSize(), но эти циферки не говорят что у тебя реально скинулась память :)


 
Loginov Dmitry ©   (2008-07-01 23:07) [17]

> Собрался уходить, свернул в панель... 1896К


Интересно, существует хотябы одна причина, по которой в Task Manager выведен по умолчанию объем используемой физической памяти (информация по сути - бесполезная), а колонка "виртуальная память", показывающая реальное использование памяти, по умолчанию отключена?


 
Игорь Шевченко ©   (2008-07-02 00:27) [18]


> за Task Manager сделать


за Task Manager следить


 
pasha_golub ©   (2008-07-02 04:10) [19]


> Игорь Шевченко ©   (01.07.08 20:04) [14]
>
> скажи пользователю, что если ему нефиг делать, кроме как
> за Task Manager сделать, то его надо уволить. Я вполне серьезно,
>  были прецеденты
>

Я б с удовольствием, но морда не сильно наглая. :0)

> Сергей М. ©   (01.07.08 20:14) [15]


> Ты на вопрос в [9] ответь - компонент твой или не твой ?
> )

Компонент мой. Мемликов нетути. Я верю в это. Профайлер тоже. :-)


> Loginov Dmitry ©   (01.07.08 23:07) [17]

Дим, я не в курсе. Мне бы просто фразу "которой можно адекватно послать нахрен засранца с его методами отлова".


 
Хитрий Лис   (2008-07-02 10:15) [20]


> Дим, я не в курсе. Мне бы просто фразу "которой можно адекватно послать нахрен засранца с его методами отлова".

Попросить засланца оформить претензию оффициально.... с печатями там, подписями гендиректоров и т.п...


 
Сергей М. ©   (2008-07-02 10:21) [21]


> верю в это. Профайлер тоже


Ну если вы с профайлером истинно верующие, то тогда очевидный ответ на твой вопрос 2: "С новым годом ! Пошель нафик !"

)



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

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

Наверх




Память: 0.5 MB
Время: 0.055 c
1-1196789989
Elhat
2007-12-04 20:39
2008.08.17
Определение многопользовательской / однопользовательской Windows


11-1192680509
homm
2007-10-18 08:08
2008.08.17
GRushControls 0.36


2-1215701956
tytus
2008-07-10 18:59
2008.08.17
Как в ячейку Excel записать знак суммы ∑ ?


9-1171909006
Xandr
2007-02-19 21:16
2008.08.17
Data Driven Game Engine


1-1196691015
antonn
2007-12-03 17:10
2008.08.17
авторизация в Novell





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