PHP-скрипт не освобождает память должным образом, возможно, из-за взаимодействия с базой данных - PullRequest
0 голосов
/ 10 февраля 2012

У меня есть очень сложный скрипт, написанный на PHP, который читает много CSV-файлов и импортирует контент в базу данных. В некоторых местах я делаю это не напрямую через операторы INSERT, а через объекты.

Моя проблема в том, что top (скрипт работает на Ubuntu 10.04 с PHP 5.3.2) показывает, что процесс apache2 использует несколько ГБ памяти, а memory_get_usage (true) будет занимать около 250 МБ. Я начал вызывать gc_collect_cycles (), которая заявила, что собирает более 100000 циклов, но объем используемой памяти не уменьшается. Я начал сбрасывать переменные, прежде чем покинуть области видимости функций и все такое.

Есть ли способ отследить причину огромного использования памяти и, что еще важнее, способ ее исправить?

1 Ответ

0 голосов
/ 10 февраля 2012

Вы пытались использовать Webgrind ?

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...