Как избежать истощения памяти PHP?

Неустранимая ошибка: допустимый размер памяти 33554432 байт исчерпан (пытался выделить 136753 байта) в /home/alien/Desktop/1/scanner.php в строке 166

это 166 строк кода PHP:

$text[$i] = curl_multi_getcontent ($curl[$i]); 

здесь любой способ обойти это, опуская ОЗУ или что-то в этом роде, извините, я не программист

Solutions Collecting From Web of "Как избежать истощения памяти PHP?"

Похоже, ваш сервер настроен с 32 МБ памяти, выделенной для PHP. Не зная больше о вашем приложении, это звучит как разумная сумма, но, безусловно, есть приложения, для которых требуется больше.

В файле php.ini вы можете увеличить лимит памяти, например:

 memory_limit = 64M 

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

Бла-бла, memory_limit. Похоже, что все избили меня до этого.

Обратите внимание, однако, что ограничение по умолчанию для php обычно составляет 8 или 16 Мб, и вы используете 32 … Кто-то уже сделал шаг по увеличению лимита для вас, и с каждым увеличением вы опускаете общая производительность вашего сайта … Более высокий предел означает меньшее количество экземпляров, более высокие накладные расходы, более возможные ошибки.

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

Вы можете увеличить объем памяти, доступный для каждого отдельного PHP-запроса через php.ini . Подробнее см. Документацию memory_limit .

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

В PHP нет функции free_ram (). Вы делаете несколько вариантов:

  • Увеличьте ограничение памяти, доступное для php. В вашем файле php.ini увеличьте memory_limit
  • unset () и пересечь пальцы. PHP запускает сборщик мусора, поскольку он считает нужным, и его трудно измерить.