Лучшие практики, чтобы остановить утечки памяти и улучшить производительность - PullRequest
0 голосов
/ 18 июля 2009

Проще говоря, я довольно новый PHP-кодер, и мне было интересно, если кто-нибудь может подсказать мне лучшие способы улучшить производительность в коде, а также остановить эти надоедливые утечки памяти, мой хост - один из тех, которые не ' на нем не установлен APC и т. п., поэтому все они должны быть закодированы вручную -_-

Ответы [ 2 ]

2 голосов
/ 18 июля 2009

Я не думаю, что обычные утечки памяти (например, забвение избавиться от объектов или строк) распространены в PHP, но утечки ресурсов в целом таковы. У меня были проблемы с:

  • соединения с базой данных - вам действительно нужно позвонить pg_close / mysql_close / etc. когда вы закончите с подключением. Хотя я думаю, что пул соединений PHPs смягчает это (но может иметь собственные проблемы).

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

Обратите внимание, что если ваши сценарии работают как чистый CGI (без модулей HTTP-сервера), ресурсы будут эффективно очищены при выходе из сценария. Однако могут быть проблемы с памятью во время выполнения скрипта, особенно в случае изображений, где нередко выполняется много манипуляций в одном скрипте.

0 голосов
/ 18 июля 2009

Как правило, php-скрипты не могут пропускать память. Среда выполнения php управляет всей памятью для своих скриптов. Сам скрипт может утечь память, но это будет исправлено после завершения процесса php. Поскольку php в основном используется для обработки http-запросов, и они обычно выполняются в течение очень короткого времени, это делает его беспроблемным, если происходит утечка памяти. Поэтому утечки памяти должны беспокоить вас, только если вы используете php для задач, не относящихся к http. Производительность должна беспокоить вас больше, чем использование памяти. Используйте инструмент, такой как xdebug , для профилирования вашего кода.

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