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

Вниз

Отлов 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;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.02 c
2-1216047370
TUserClass
2008-07-14 18:56
2008.08.17
Транзакции, господа...выручайте...


2-1215802076
Jimmy
2008-07-11 22:47
2008.08.17
ScrollBar


2-1215755547
Андрей Пл
2008-07-11 09:52
2008.08.17
TDBNavigator в вертикальном виде?


15-1214914100
i
2008-07-01 16:08
2008.08.17
Delphi7 and Vista..


3-1203685287
TFieldDefs
2008-02-22 16:01
2008.08.17
AddFieldDef - бага в DB.pas