Не хватает памяти

Статус
В этой теме нельзя размещать новые ответы.

Angl

Новичок
Подскажите, люди добрые. Есть скрипт, который закачивает картинку на сервер, изменяя её размер и ужимая. Всё работает - на локальном сервере. Но когда закачиваю к провайдеру - выделывается, жалуется на недостаток памяти. Файлы поменьше (1,5 мб) идут нормально, как по маслу. А 3,5 мб - ни в какую. Хотя ограничение по закачке - 5 мб. У провайдера в суппорте пишут, что типа купите другой абонемент, с большим объёмом памяти. Если бы речь шла только обо мне, так никаких проблем, уменьшила картинки и загрузила. Но заказчик - вернее, много заказчиков - гос. контора (дома престарелых), денег лиших на абонемент могут и пожалеть. Закачка картинок - в системе администрирования, и ожидается, что люди там будут сидеть ни бе ни ме, про уменьшение картинок непонимэ. Нет ли какого способа автоматизировать уменьшение картинок, не перегружая память сервера? Может, JavaScript это может? Хотя я в нём ни бум-бум, всё больше с РНР балуюсь. Но попробовала бы, надо.

Да, вот ещё - ругается так:
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 16000 bytes) in /usr/home/web/***/***/blocks/functions.php on line 118
(а на той строке - функция imagecreatefromjpeg(); я не понимаю, как она могла столько памяти нажрать, если картинка 3,5 мб)
 

tz-lom

Продвинутый новичок
3.5 МБ это в сжатом виде,а imagecreatefromjpeg её разжимает
для оценки занимаемой памяти в разжатом виде можете преобразовать её в BMP и посмотреть сколько выйдет,плюс ещё ПХП сколько то съедает
пути решения:
1е - переписать алгоритм с упором на меньше памяти (сложно,мало поможет)
2е - попытаться использовать imageMagick (вот уж чего я не знаю так это того ест ли он больше GD или нет)
3е- вынести обработку изображения в cli ,т.е. запускать отдельный скрипт через exec (не у всех хостеров можно)
4е- просто увеличить лимит (в принципе провайдер может и не ограничивать по памяти отдельный поток ПХП )
 

Angl

Новичок
3.5 МБ это в сжатом виде,а imagecreatefromjpeg её разжимает
для оценки занимаемой памяти в разжатом виде можете преобразовать её в BMP и посмотреть сколько выйдет,плюс ещё ПХП сколько то съедает
пути решения:
1е - переписать алгоритм с упором на меньше памяти (сложно,мало поможет)
2е - попытаться использовать imageMagick (вот уж чего я не знаю так это того ест ли он больше GD или нет)
3е- вынести обработку изображения в cli ,т.е. запускать отдельный скрипт через exec (не у всех хостеров можно)
4е- просто увеличить лимит (в принципе провайдер может и не ограничивать по памяти отдельный поток ПХП )
Спасибо за ответ, но из всех пунктов самый простой и доступный - последний (перейти на другой тип абонемента, чего мне хотелось избежать). Воторй и третий требуют тоже разборок с провайдером, легче просто заплатить за экстра-память. По поводу первого пункта - не могу догадаться, чего там переписывать, чтобы память уменьшить. :(
Я надеялась, что может есть возможность как-то уменьшить фотки на локальном компе, до отправки на сервер. Но поскольку особо не знакома с другими видами скриптов, кроме РНР, то и спросила: может, подскажет кто.
 

AmdY

Пью пиво
Команда форума
не надо переходить и платить попробуй ini_set("memory_limit", "64M") или больше
 

Angl

Новичок
Не, провайдер не дурак, видать. Не прошёл этот номер. :(
 

Вурдалак

Продвинутый новичок
Размер файла с изображением, в принципе, не важен. Важны размеры картинки (ширина x высота).

А текст ошибки сейчас какой?
 

AmdY

Пью пиво
Команда форума
если не дурак, то должен был поставить ImageMagick, посмотри phpinfo
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Не изобретай себе геморой с оптимизациями.
Вот они возьмут и загрузят не 3Мб, а 5, - сервак опять обделается.
Посему у них может быть 2 выхода:
1. Увеличить оперативку.
2. Ввиду того, что контора государственная, и денег платить не хочет - предложи им обрабатывать фотки до нормального размера, а потом алоадить на сервер.
 

Angl

Новичок
Размер файла с изображением, в принципе, не важен. Важны размеры картинки (ширина x высота).

А текст ошибки сейчас какой?
Такой же, ничего не поменялось.

если не дурак, то должен был поставить ImageMagick, посмотри phpinfo
Не дурак - это в плане защиты своих интересов от ушлых клиентов; в phpinfo сейчас нашла, что memory_limit установлен на 32М. ImageMagick не нашла. А про обработку изображений стоит в суппорте, что используется GDlib (2.0).
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Angl
Так ты женского пола?
Фотку покажешь? :D
 

Angl

Новичок
Не изобретай себе геморой с оптимизациями.
Вот они возьмут и загрузят не 3Мб, а 5, - сервак опять обделается.
Посему у них может быть 2 выхода:
1. Увеличить оперативку.
2. Ввиду того, что контора государственная, и денег платить не хочет - предложи им обрабатывать фотки до нормального размера, а потом алоадить на сервер.
Эти 2 варианта у меня есть и сейчас, завтра буду с начальницей обсуждать. Скорее всего, согласятся с первым, поскольку администрировать будут тётки в возрасте (скорее всего), которые и почту-то с опаской проверяют. Меня об этом сразу предупредили, поэтому всё должно работать так, чтобы и младенец справился. Какое там уменьшение картинок, вы чего. Только автоматом.
 

AmdY

Пью пиво
Команда форума
первый наименее реалистичен, это нужен vps хотя бы. это значительно дороже, проще сменить провайдера на нормального и проголосовать рублём, а не идти на поводу.
самые лучшие варианты - переписка с админом, бывают и там люди. иначе перезд. посадить всех за фотошоп утопия. даже дизайнеры любят. чтобы картинки сервер ресайзил.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Жалко да?
Не закроют. Я договорюсь.
 

Angl

Новичок
— что, такое же число в ошибке: 33554432?

Данная директива меняется везде, хостер вряд ли мог поменять поведение без изменения исходников.
Да, число не изменилось. Я не в курсе, чего они там наменяли, но это вполне логично, когда они берут дополнительные деньги за увеличение памяти (сейчас около 42 руб в месяц за 32М, а будет почти 100 руб за 64М).


первый наименее реалистичен, это нужен vps хотя бы. это значительно дороже, проще сменить провайдера на нормального и проголосовать рублём, а не идти на поводу.
самые лучшие варианты - переписка с админом, бывают и там люди. иначе перезд. посадить всех за фотошоп утопия. даже дизайнеры любят. чтобы картинки сервер ресайзил.
Проблема-то в том, что мне самой это не нужно, у меня этот хостинг пока ни для чего другого, кроме тестирования скриптов, не используется (себе сайт никак доделать не могу, руки не доходят). Поэтому платить дополнительно жаба душит. А как заказчики среагируют, я не знаю. Я им наплела, как всё дёшево, мне же нужно было получить это задание. Теперь колбасит сообщать о дополнительных расходах. :(


Жалко да?
Не закроют. Я договорюсь.
Мущина, какой вы упорный.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху