Здравствуйте, я сталкиваюсь с проблемой Разрешенной ошибки размера памяти. Я создал проект в codeigniter, php и использовал библиотеку Tbs. Он работал нормально, но сегодня он отображает ошибку:
Неустранимая ошибка: допустимый объем памяти 67108864 байта исчерпан (попытка выделить 258010 байтов) в
/home/abc/public_html/application/libraries/Tbs.php на линии
4222
Пожалуйста, дайте мне какие-либо предложения.
Если вы используете TBS + OpenTBS для слияния файла XLSX, то существует известная проблема, исправленная в OpenTBS версии 1.9.2: если число строк для слияния довольно много, то вы можете иметь очень длинный процесс или ошибка размера памяти при вызове $TBS->Show()
,
Используйте OpenTBS 1.9.2 или выше, который оптимизирован для этой точки, и, если процесс еще долго, вы можете оптимизировать больше, используя OPENTBS_RELATIVE_CELLS команда.
«Разрешенный размер памяти в XXXXXX байтов исчерпан» — типичная ошибка, когда у вас, как говорит его собственное имя, недостаточно памяти для запуска php-запроса.
Попробуйте обновить memory_limit
переменная на вашем php.ini
файл или настройкой ini_set('memory_limit', 'XXXM');
в вашем PHP-файле, который вы используете, будучи XXX объемом Мб памяти, который вы хотите определить.
Если это не так, у вас может быть ошибка в программном обеспечении, которая вызывает, то есть цикл, который потребляет память без какого-либо контроля; но, как вы сказали, что это работало раньше …
В любом случае, пожалуйста, проверьте все остальные ответы от StackOverflow по этому аспекту:
Неустранимая ошибка: допустимый объем памяти 134217728 байт исчерпан (CodeIgniter + XML-RPC)
CodeIgniter Fatal error: допустимый объем памяти исчерпан байтами
Обычно этот тип возникает, когда ваш скрипт использует слишком много памяти. Это часто может происходить в PHP, если у вас есть цикл, который вышел из-под контроля, и вы создаете объекты или добавляете в массивы на каждом проходе цикла. Проверьте на бесконечные петли.
Если это не проблема, попробуйте помочь PHP, уничтожив объекты, с которыми вы покончили, установив для них значение null, например. $ OldVar = null ;.
Проверьте код, где на самом деле происходит ошибка. Вы ожидаете, что эта строка будет выделять огромное количество памяти? Если нет, попробуйте выяснить, что пошло не так.
Никогда не обновляйте переменную memory_limit в вашем файле php.ini или устанавливая ini_set (‘memory_limit’, ‘XXXM’); в вашем PHP-файле, который вы запускаете, будучи размером XXX, в мегабайтах памяти, который вы хотите определить. Присвоение приложению необходимой памяти — это безумный шаг. Попробуйте выяснить, требует ли ваше приложение столько памяти? Узнать