PHP 8ПровереноПрактика

Allowed memory size exhausted — исчерпан лимит памяти PHP

Ошибка означает, что процесс PHP запросил память сверх memory_limit; увеличение лимита без поиска причины часто лишь откладывает повторение.

Fatal error: Allowed memory size of ... bytes exhausted

Сохраните контекст

Зафиксируйте операцию, размер входа, memory_limit и последнюю контролируемую точку. Не публикуйте абсолютные пути и содержимое пользовательских данных.

Частые причины

Чтение большого файла целиком, выборка всех строк, накопление массива результатов, рекурсия без выхода и неожиданное декодирование большого JSON.

Пакетная обработка

<?php
foreach (readRows($stream) as $row) {
    process($row);
}

Потоковый алгоритм удерживает текущий элемент, а не весь набор.

Лимит как ограничитель

Временное повышение допустимо для известной задачи после оценки верхней границы. Значение -1 не должно становиться стандартным исправлением production-ошибки.

Проверка исправления

Повторите сценарий на возрастающих объёмах, измерьте пик, проверьте освобождение ссылок и задайте контролируемую реакцию на слишком большой вход.

Связанные материалы

Источники и проверка

  • PHP Documentation Group — структурный источник, без внешней ссылки

Последняя содержательная проверка: . Автор-разработчик Михаил Каржин. Методика качества контента.

Данные этого сервиса

Настройки cookie и локальных данных

Аналитика

Текущий статус: не выбран. До согласия обе аналитические системы не загружаются.

Локальные данные

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

Политики

Политика конфиденциальности · Политика использования файлов cookie