Intereting Posts
Как проверить, была ли получена почта с помощью php Загрузите файл, созданный в выходном буфере PHP, из вызова AJAX MySQL: два из каждого набора Метод PHP SOAP Server получает набор параметров PHP печатает имена полей SQL как массив с соответствующими значениями, отображаемыми один раз в строке Является ли регулярное выражение хорошим способом проверки URL-адреса Переназначение URL-адреса IIS + PHP Массив PHP в массив JS с jQuery и json_encode Мой скрипт PayPal неожиданно прекратил проверку SSL-сертификата Когда нужно обернуть фигурные скобки вокруг переменной Изменение переменных сеанса PHP с помощью файла include Отправить электронную почту с помощью PHP / AJAX из HTML-формы Можно ли динамически добавлять код для расширения класса? Почему Phing запускает мой файл build.xml, а затем говорит, что его не существует? Как повторять что-то каждые 4 минуты в бесконечном цикле

Неустранимая ошибка: Недостаточно памяти (выделено 1134559232) (попытался выделить 32768 байт) в X: \ wamp \ www \ xxx

Я использую WAMP-сервер (32 бита) на локальном хосте на моем персональном компьютере. У меня большой (очень большой) многомерный массив, который получает свою информацию, читая CSV-файл, содержащий длинные предложения (файл CSV содержит 20 000 строк информации). Проблема в том, что я получаю следующую ошибку, когда она проходит через некоторые вычисления:

Неустранимая ошибка: Недостаточно памяти (выделено 1134559232) (попытался выделить 32768 байт) в x: \ wamp \ www \ xxx

Я пробовал различные решения, такие как увеличение upload_max_filesize , post_max_size , max_file_uploads и memory_limit или установка его в -1 в php.ini или в начале моих скриптов, и никто не работает. Пожалуйста, помогите мне, и, пожалуйста, не просите меня перепроектировать мои коды или изменить версию WAMP, по каким-то причинам это невозможно. Большое спасибо. 🙂

Related of "Неустранимая ошибка: Недостаточно памяти (выделено 1134559232) (попытался выделить 32768 байт) в X: \ wamp \ www \ xxx"

Наконец, я смог найти решение. Я обнаружил, что когда мусор PHP-сборника заполняется, нет возможности его освободить. gc_collect_cycles() и gc_collect_cycles() также не эффективны. Единственный способ – использовать Function над другим разделом кодов. В моем случае у меня был большой скрипт в цикле for, поэтому я скопировал все свои коды в функции, и в моем цикле я вызываю функцию. Каждый раз функция quiets, память освобождается. Вы можете протестировать его, добавив memory_get_usage() один раз в свою функцию и один раз из функции, чтобы увидеть разницу.

Это ни один из этих параметров, это memory_limit , максимальный объем памяти, который может использовать PHP-скрипт. Однако убедитесь, что на вашем сервере достаточно ресурсов, прежде чем произвольно увеличить этот параметр.

Поместите эту строку в начало вашего кода:

 ini_set("memory_limit", -1); 

В руководстве по PHP дается следующее описание memory_limit :

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

До PHP 5.2.1 для использования этой директивы он должен был быть включен во время компиляции с использованием –enable-memory-limit в строке configure. Этот флаг времени компиляции также должен был определять функции памяти_get_usage () и memory_get_peak_usage () до 5.2.1.

Когда используется целое число , значение измеряется в байтах. Также могут использоваться сокращенные обозначения, как описано в этом FAQ .

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