Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

есть ли смысл использовать mysql_free_result

312
08 февраля 2009 года
dead_star
392 / / 26.11.2006
есть ли смысл использовать mysql_free_result на маленьких запросах?

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

насколько я понимаю, mysql_free_result освобождает память занятую одним из запросов
то есть, по идеи, если выполнить 20 запросов
и каждый будит отнимать по чуть-чуть памяти, то в сумме может получиться вполне прилично
и ошибка Allowed memory size будет не-на столь туманной
в таком случае есть смысл ее использовать

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

и еще один вопрос
как определить, сколько съедает оперативной памяти тот или иной кусок кода?
285
09 февраля 2009 года
Romik
479 / / 24.11.2002
Нужно освобождать память вызовом mysql_free_result, иначе это ведёт к memory-leaks, особенно когда вот такое неприметное малое дополнение к большой системе может использоваться часто. Если Вы ранее работали с C/C++, то у Вас таки инстиктивно должен напрашиваться вывод по поводу очистки не нужного куска памяти.
Если подходить к этому вопросу серьёзно, то типичным решением является создание класса для работы с базой, который заботиться о деталях. (на форуме это весьма популярная тема). Методы класса, как правило, возвращаю массив, объект или конкретное значение, но не ресурс запроса. Потому в самом методе есть смысл очищать результат запроса.

P.S.
В некоторых компаниях на собеседованиях в тестовых заданиях обращают на факт вызова mysql_free_result().
13
09 февраля 2009 года
RussianSpy
3.0K / / 04.07.2006
Имеет смысл только если у вас в скрипте много запросов к БД и сам скрипт работает достаточно продолжительное время (от 1 сек). Если вы выполнили запрос, получили в результате тысячу-другую строк и больше запросов у вас не предвидится, то использовать mysql_free_result() не обязательно - по завершению работы скрипта память освободится автоматически сборщиком мусора.
Ежели вы в разных частях скрипта выполняете запросы, возвращающие достаточно большой объем данных, то лучше использовать эту функцию дабы ваш скрипт не вывалился из-за нехватки выделенной памяти.
312
09 февраля 2009 года
dead_star
392 / / 26.11.2006
большое спасибо, с этим теперь все ясно
остался еще один момент
можно ли, и если можно то как, определить сколько съедает оперативной памяти тот или иной кусок серверного, програмного кода?
я сталкивался с этой задачей еще когда писал модуль для работы с GD
но решения так и не нашел
может кто знает как...
312
10 февраля 2009 года
dead_star
392 / / 26.11.2006



большое спасибо, очень помог

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог