Как увеличить память на masterhost без смены тарифа


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

Так и случилось в очередной раз. Понадобилось настроить синхронизацию остатков товаров на складе с магазином. Вкратце, алгоритм решения задачи прост: скачиваем файл, обрабатываем его, выделяем артикулы, сопоставляем их с числом остатков и обновляем значения в базе в зависимости от полученных значений.

Так как файл, с которым предстоит работать – это xml (точнее, yml, но в данном случае это неважно), то очень просто занести сразу в память его массивом с помощью функции file(). Пробуем.. и видим безрадостную картину:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 72 bytes) in /script.php on line 6

Перевожу: разрешенный размер памяти 134217728 байт исчерпан (пытался выделить 72 байта). У нас на этом мастерхост тарифе 128 Мб:



Переходить на другой? А что если попробовать выделить немного больше памяти для скрипта? Не хватает же совсем чуть-чуть. На некоторых хостингах (в частности, например, на моем) разрешается самостоятельно управлять памятью и временем выполнения (есть, конечно и лимиты), а что если и тут получится?

Пишем в скрипте перед началом скачивания файла и занесения файла в массив одну строку:

ini_set('memory_limit', '256M');
Заливаем файл на сервер и … все заработало!

Конечно, в данном случае можно решить задачу и другим способом. Например, использовать функцию fopen(), построчно прочитать файл и занести в массив не все строки, а только нужные нам. Однако, проще же сделать это двумя строками, не правда ли?

Итак, на мастерхост можно увеличить память даже на бюджетных тарифах. Но, не исключено, что они все же прикроют данную лазейку. А если вам не хочется так заморачиваться, а вполне легально управлять памятью для скриптов на своем бюджетном виртуальном хостинге, то добро пожаловать на фулспейс. Я вам даже бесплатно помогу перенести ваш сайт на данный хостинг, если вы зарегистрируетесь по моей ссылке. Пишите.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегизаметки, хостеры, php




Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Функция транслит на php с демонстрацией
Работа с ini на C#
Что такое JVM? Знакомство с виртуальной машиной Java