arogachev / yii2-excel

ActiveRecord import and export based on PHPExcel for Yii 2 framework
Other
64 stars 25 forks source link

Out of memory. #29

Closed ignatenkovnikita closed 8 years ago

ignatenkovnikita commented 8 years ago

I run import and get error. PHP Fatal Error 'yii\base\ErrorException' with message 'Out of memory (allocated 1533804544)

arogachev commented 8 years ago

Need more details. Where the error happens? On local or production server? How big the excel file is?

ignatenkovnikita commented 8 years ago

File excel is 1 Mb. Structure string | string asdfs | sdfsd

On local and production server has error. Server has 2Gb ram and 2Gb swap.

arogachev commented 8 years ago

@ignatenkovnikita Could you share this file?

ignatenkovnikita commented 8 years ago

https://www.dropbox.com/s/ee4j7rvhja68n7s/example.xlsx?dl=0

arogachev commented 8 years ago

Отвечу на русском.

1) Файл слишком большой для импорта. Я даже не смог открыть его по указанной ссылке (браузер зависает). Если есть возможность, меняйте настройки времени исполнения и памяти:

set_time_limit(0);
ini_set('memory_limit', '-1');

Дополнительно может потребоваться изменение настроек веб сервера, если будет 504 ошибка.

В качестве альтернативы можно выполнять импорт в cli, а не через веб интерфейс.

Большое потребление памяти также обусловлено особенностями работы PHPExcel. Можно разбить файл на несколько частей поменьше и импортировать уже их поочередно.

2) Использование расширения при такой структуре данных вряд ли имеет смысл, то же самое можно сделать, сохранив в csv и используя встроенные функции БД по импорту из CSV.

ignatenkovnikita commented 8 years ago

Спасибо.

1) Запуск был через cli) 2) ну в целом так и было сделано, разбил на несколько файлов по 1Мб и все заработало. Спасибо!