Форум: "Прочее";
Текущий архив: 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.04 c