утечка памяти и MySQL

Martin

Новичок
утечка памяти и MySQL

всем добрый.
столкнулся с проблемой, решение никак не могу найти.
проблема связана с утечкой память при подключении к БД mysql.
обращаюсь к БД по таймауту, ч\з ф-цию OnTimer(), которая запускается ч\з каждые 2 сек. подключаюсь к БД и проверую не были сделаны изменения, этот режим работы программы называется автоматич. режим.
вот так программа может работать целые суть, врезультате после работы одник сутки утечка памяти составила 650 Мбайт.

не подскажите как можно обращаясь к БД избежать утечки памяти ?
 

Alexandre

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

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

Martin

Новичок
Автор оригинала: Alexandre
очевидно он продебажил, или, Martin это не так?
на основании того, что растет память работающего приложения нельзя утверждать , что в нем есть утечка.

Утечка памяти, это когда приложение закончило свою работу и не вернуло ядру высовбожденную память, т.е. ядро после работы программы стало располагать меньшей памятью, чем до начало работы приложения.
утечку памяти обнаружил ч\з таскменеджер.
если коментирую часть кода ответствен. за частое подключение к БД, т.е. OnTimer() утечка в моей программе клиент перестает наблюдаться.
если отключай режим работа клиента из автоматич. режима утечка памяти перестает наблюдаться.
 

dr-sm

Новичок
покажи код хоть, скорее всего, ты ее сам не возвращаешь.
hint: подключатся надо не каждый раз при событии онТаймер,
а один раз при переходи в автоматический режим.
 

Alexandre

PHPПенсионер
при каждом коннекте резервируется память для расположения структур коннекта и ответа. Для освобождения этой памяти необходимо вызывать mysql_free() или mysql_close() (не будем привязыываться к конкретному языку).

если теряется коннект, и ты снова (по таймеру) вызываешь mysql_open() то вновь запрашиваешь ядро на выделение необходимой памяти, не вернув ему старые блоки памяти.

не знаю как в винде, но в никсах клиентская либа мускуля утечек не имеет (проверенно - мин нет).
 

Martin

Новичок
всем спасибо.
проблема решилась.
все ваши комментарии приму к сведению. :)
 
Сверху