Оптимизация расхода памяти

Нашли ошибку ? Пишите в этот раздел

Модератор: core team

evorios
Новенький
Сообщения: 3
Зарегистрирован: Пт ноя 15, 2013 3:01 am

Сообщение evorios » Сб ноя 23, 2013 2:03 pm

Вчера вечером при обращении к списку галерей на ровном месте получил ошибку
[22-Nov-2013 21:28:50 UTC] PHP Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 19456 bytes) in /public_html/vendor/clevertech/yii-booster/src/widgets/TbBaseMenu.php on line 172

Но опция "php_value memory_limit 32M" спасла положение.

Посему у меня вопрос: почему обращение к списку галерей съедает больше памяти, чем обращение к любой из галерей?
Типичные значения потребления памяти:
1) кешированных запросов:
- для страниц сайта ~7-8 Мб
- для галерей ~12-13 Мб
- для списка галерей 18 Мб

2) первичных запросов: все на ~4-5 Мб выше.

Аватара пользователя
xoma
Администратор
Сообщения: 1945
Зарегистрирован: Ср авг 22, 2012 8:54 am
Контактная информация:

Сообщение xoma » Вт дек 24, 2013 12:47 am

На текущей версии повторяется ?
Можете сообщить версию пхп, какой сервер, есть ли кешер ?
http://yupe.ru/subscribe - интересное от команды "Юпи!"

vrembo
Новенький
Сообщения: 3
Зарегистрирован: Вт май 16, 2017 12:14 am

Re: Оптимизация расхода памяти

Сообщение vrembo » Вт май 16, 2017 12:59 am

Все повторяется!
Вопрос актуальный! Ответа нет с 2013 года!
Стал выводить Fatal error: Allowed memory size of... на ровном месте, при попытке перейти в раздел "Магазин" в админке!
ВСе произошло после заполнения базы товаров! сначала стал писать на фронтенде что-то вроде wrong delimeter mb_string(), потом, очистив базу товаров и удалив содержимое папки /protected/runtime/cache/, вроде, с горем пополам, ожил... заполнил снова базу - во фронтенде шевелится, а вот в админке снова завалился.
Сырой до некуда движок! Чуть что не так - сразу падает с кучей ошибок! Может почаще проверку переменных организовывать? ..ну, там, "isset($var)", "$var!=null", "count(array())"... из БД NULL может прийти опять же ... можно бы и проверить..?!
Парсер мой на коленке за 20 минут писан, вот category_id в NULL и выставил в таблицах - проблему то я быстро нашел и исправил... а вот движок мертво завалился... пока не допер где кеш ручками снести - шансов не было! Уже если валятся ошибки - в исключения их можно добавить? ..И сообщение типа: "Вот так незадача! Ошибка Е+100500 - Кривые руки толи у Вас, толи у нас..., но а вот <a href="чистить кеш">кеш попробуйте чистить</a> - должно помочь!".

Два раза я его завалил в первые же 15 минут использования... а всего-то загнал парсером пару тыщ строк в таблицы товаров и категорий! Очень жаль((( он мне даже понравился по началу!

vrembo
Новенький
Сообщения: 3
Зарегистрирован: Вт май 16, 2017 12:14 am

Re: Оптимизация расхода памяти

Сообщение vrembo » Вт май 16, 2017 8:49 am

Переполнение буфферной памяти (heap или как там она для php правильно называется?!)... в массив пихают данные до тех пор, пока память не заканчивается!
в .htaccess в папке public добавляем строчку
php_value memory_limit 512M
и продолжаем ловить дырки в движке! )))
Метод выделения бОльшего объема памяти - совсем не панацея, но судя, что ответов не было с 2013года - очень даже решение проблемы!

Разработчикам движка: либо ограничте количество элементов, пихаемых в массив за один проход, либо выносите админку в отдельную папку с отдельным .htaccess. Как вариант еще - проверить количество элементов, доставаемых из БД и сделать ini_set('memory_limit', '999M');
А вообще - не гоже всю БД загонять в массив одним махом! Если у меня база будет на 3-5 миллионов записей - такими темпами мне под нее половину Дата-центра арендовать придется!)))

Аватара пользователя
xoma
Администратор
Сообщения: 1945
Зарегистрирован: Ср авг 22, 2012 8:54 am
Контактная информация:

Re: Оптимизация расхода памяти

Сообщение xoma » Вт май 16, 2017 9:01 am

Может вы дадите больше конкретики? Где именно и какие данные пихаются в массив полностью?
Какая версия php? Какая версия движка?

Мы рады, что Вам понравилось изначально - есть шанс помочь нам стать еще лучше и поправить все ошибки, а не голословно кричать на форуме!

Мир!
http://yupe.ru/subscribe - интересное от команды "Юпи!"

vrembo
Новенький
Сообщения: 3
Зарегистрирован: Вт май 16, 2017 12:14 am

Re: Оптимизация расхода памяти

Сообщение vrembo » Вт май 16, 2017 10:11 am

Ну... так то я и не кричал, вроде.. извините, если перегнул! )) по конкретике - вроде более-менее написал же! Если, например, category_id в БД окажется NULL,- движок падает с ошибкой и даже если потом в БД все поправить - движок все равно лежит - не работает ни админка, ни фронт!
Вот данные :"Вы используете Yii версии 1.1.17 , Yupe! версия 1.2-dev , версия php 5.4.16"

В админке при переходе в раздел "Магазин", организация списка товаров сделана постраничная (по крайней мере внешне) - это гуд! НО. список категорий при этом загоняется целиком ( и не спорьте - ЦЕЛИКОМ! чтобы это понять - даже код смотреть не надо - select в фильтре выводит их все разом...)! Если у меня 10-20 категрий - это роли не сыграет... даже наоборот! А вот, если категорий у меня много - начинаются проблемы вышеописанные... получается, что процентов 80-90 от heap забито массивами с товарами и массивами с пагинацией и прочими данными - сессии там, модули, меню и пр... а тут - раз!.. и не хилый такой массив с категориями прилетает... результат -Heap overflow! аналогичная ситуация, думается, была и с галлереей двумя постами выше в 2013году.
Не думаю, что версия ПХП играет тут ключевую роль, т.к. если переменной не существует, а мы к ней обращаемся - это будет ошибка даже в любом языке программирования! Если из БД приходит NULL, а мы его обрабатываем как integer - это ошибка! )
Отствие строгой типизации данных в PHP - это, конечно, хорошо! экономит много времени ввиду отстуствия необходимости приведения типов... и пр., но, как результат - программист начинает лениться проверять входные данные, надеясь на ПХП... результат - нестабильная работа кода!

Аватара пользователя
xoma
Администратор
Сообщения: 1945
Зарегистрирован: Ср авг 22, 2012 8:54 am
Контактная информация:

Re: Оптимизация расхода памяти

Сообщение xoma » Вт май 16, 2017 10:53 am

Можете приложить ваш дамп БД со всеми данными? Потому как:

1 У товаров спокойно может быть NULL в категории вот пример https://demo.yupe.ru/store/noutbuk-leno ... g5030.html
2 Тестировали на примерно 1000 категорий с уровнем вложенности 3 - все ок. У вас больше 1000 категорий или очень глубокая вложенность?
http://yupe.ru/subscribe - интересное от команды "Юпи!"

Monday12
Гуру
Сообщения: 101
Зарегистрирован: Ср окт 18, 2017 8:53 am

Re: Оптимизация расхода памяти

Сообщение Monday12 » Ср окт 18, 2017 9:34 am

helinlin20171019
oakley sunglasses outlet
burberry outlet online
air max
coach outlet store online clearance
ralph lauren sale
nike sneakers
coach outlet store
hermes bags
canada goose sale
north face outlet
louboutin shoes
burberry outlet online
canada goose outlet
pandora charms sale clearance
fitflop sandals
ray bans
cheap air jordans
ugg outlet
cheap oakley sunglasses
coach outlet online
adidas yeezy shoes
caterpillar boots
ugg boots
cheap ray ban sunglasses
michael kors outlet online
cheap nike shoes
uggs
louis vuitton outlet
coach outlet online
louis vuitton outlet online
coach factory outlet
cheap ugg boots
canada goose uk
yeezy shoes
toms outlet
canada goose coats
coach outlet online
ugg outlet store
pandora charms outlet
michael kors outlet online
pandora jewelry
harden vol 1
michael kors bags
cheap jordan shoes
pandora charms outlet
moncler outlet online
pandora charms outlet
oakley sunglasses outlet
canada goose outlet
canada goose parka
burberry outlet
moncler uk
mulberry handbags
christian louboutin sale
ugg
uggs outlet
cheap ugg boots
uggs outlet
uggs outlet
mlb jerseys
canada goose sale
coach outlet
uggs outlet
canada goose outlet
michael kors outlet store
mbt
hermes bags
louis vuitton factory outlet
canada goose jackets
canada goose outlet
michael kors outlet online
pandora uk
ralph lauren outlet online
pandora charms
cheap oakley sunglasses
cheap uggs
uggs outlet
coach outlet online
coach outlet online
adidas shoes
coach outlet online
nike air max 2018
canada goose sale
fred perry shirts
moncler coats
fred perry polo shirts
louis vuitton outlet store
coach purses
timberland outlet
ugg boots outlet
polo ralph lauren outlet
tory burch outlet online
ugg boots outlet
burberry handbags
coach outlet canada
air max shoes
coach factory outlet online
canada goose sale
moncler coats
ugg boots
burberry outlet online
coach factory outlet
mlb jerseys whgolesale
coach outlet online
kate spade outlet
toms
coach factory outlet
adidas superstar shoes
coach outlet store
coach factory outlet online
nike outlet store
michael kors outlet store
timberland outlet store
uggs outlet
salvatore ferragamo outlet
coach outlet store online
coach factorty outlet online
uggs outlet
cheap ray ban sunglasses
ugg boots clearance
michael kors outlet store
longchamp
michael kors outlet store
the north face outlet
ray ban glasses
coach outlet online
ugg sale
ralph lauren outlet online
michael kors
discount oakley sunglasses
toms
polo ralph lauren outlet
yeezy boost 350
tory burch shoes
ralph lauren sale clearance uk
cheap nfl jerseys
ray ban sunglasses outlet
yeezy shoes
moncler jackets
ugg outlet
coach outlet online
coach outlet online
yeezy boost
uggs
cheap air jordans
kate spade outlet online
coach factory outlet online
ugg canada
uggs outlet
christian louboutin shoes
michael kors outlet clearance
ralph lauren outlet
cheap jordan shoes
michael kors outlet canada
christian louboutin shoes
uggs outlet
nike sneakers
coach factory outlet
coach outlet online
coach outlet online
canada goose sale
polo ralph lauren
ralph lauren outlet online
hermens
ray ban sunglasses sale
louboutin outlet
canada goose coats
uggs outlet
ugg boots
adidas outlet online
ugg australia
cheap air jordans
birkenstock uk
canada goose sale
salvatore ferragamo shoes
kate spade handbags
yeezy boost 350
pandora charms
ugg outlet
adidas yeezy boost
pandora charms
ralph lauren
ralph lauren outlet
polo outlet online
polo ralph lauren outlet online
retro 11
moncler jacket
uggs on sale
michael kors outlet online
michael kors outlet online
coach outlet online
ugg boots outlet
adidas nmd r1
cheap jordans free shipping
cheap ugg boots
ugg slippers
ugg boots
christian louboutin sale
mulberry
coach factory outlet online
louis vuitton factory outlet
louis vuitton outlet store
ugg boots outlet
ray ban glasses
coach outlet store online
uggs outlet
nike shoes
christian louboutin shoes
coach outlet online
ugg boots
nfl jerseys
birkenstock outlet
uggs outlet
ugg outlet online
coach factory outlet online
uggs clearance
michael kors outlet online
mbt
ray bans
ugg outlet online
pandora jewelry outlet
hermes handbags
burberry outlet online
cheap jordan shoes
polo ralph lauren outlet
christian louboutin shoes
pandora jewelry store
birkin handbags
air jordan retro
michael kors outlet clearance
canada goose
tory burch outlet online
superdry outlet
ugg boots
toms
louis vuitton factory outlet
pandora charms sale clearance
ray ban sunglasses cheap
coach outlet online
moncler outlet online
valentino
adidas nmd runner
canada goose jackets
pandora charms
adidas yeezy boost
nmd adidas
michael kors outlet store
discount ray ban sunglasses
longchamp bags
ralph lauren sale clearance uk
kate spade outlet
toms outlet
coach factory outlet online
michael kors outlet store
michael kors outlet store
moncler jackets
uggs clearance
coach outlet online
moncler
canada goose coats
polo ralph lauren outlet
michael kors outlet clearance
canada goose jackets
ugg boots sale
adidas nmd r1
polo ralph lauren outlet
uggs outlet
coach outlet store online
ugg outlet
canada goose jackets
polo ralph lauren
gucci outlet online
cheap ray ban sunglasses
ugg outlet online
ugg shoes
moncler sale
polo ralph lauren outlet online
michael kors outlet online
adidas store
adidas ultra boost
cheap jordans for sale
bottes ugg
red bottom
nike huarache shoes
ray ban sunglasses outlet
ferragamo outlet
ugg sale
christian louboutin shoes
north face outlet
pandora outlet
adidas nmd runner
canada goose coats
ugg boots on sale
polo ralph lauren outlet
kate spade outlet online
jerseys cheap
pandora charms outlet
pandora charms sale
adidas nmd r1
canada goose coats
coach outlet online
ugg boots
canada goose jackets
polo ralph lauren outlet
birkenstock
coach outlet store
coach factory outlet online
fitflops sale clearance
canada goose jackets
longchamp bags
ugg outlet
adidas outlet online
polo ralph lauren outlet online
pandora
canada goose outlet
pandora jewelry
coach factory outlet online
ugg outlet
nike outlet online
moncler pas cher
cheap ugg sale
ray bans
coach handbags outlet
michael kors outlet online
longchamp sale
uggs outlet
ray ban sunglasses discount
air jordan shoes
coach outlet online
cheap uggs
moncler sale
ugg boots
louboutin outlet
polo ralph lauren outlet online
canada goose coats
adidas outlet store
adidas outlet store
ugg boots
michael kors bags
nike outlet store
canada goose jacket
cheap nfl jerseys wholesale
michael kors outlet clearance
birkenstock shoes
ralph lauren sale
uggs outlet
valentino outlet
ray ban sunglasses discount
michael kors
louis vuitton handbags
canada goose clothing
ralph lauren
ugg on sale
louis vuitton outlet online
nike outlet
air jordans
columbia sportswear outlet
north face jackets
michael kors
kate spade outlet online
cheap ugg boots
moncler coats
coach outlet online
ralph lauren outlet
ralph lauren outlet online
canada goose jackets
coach factory outlet
cheap ray bans
coach outlet online
canada goose
michael kors
canada goose jackets
ugg boots women
jordans
adidas superstars
canada goose jackets
nike outlet store online
red bottom heels
ugg boots
air max
canada goose jackets
supreme shirts
coach outlet store
michael kors handbags outlet
ugg boots clearance
adidas yeezy boost 350
ralph lauren uk
toms shoes
canada goose outlet
uggs outlet
kate spade handbags
longchamps
canada goose jackets
moncler jackets
north face jackets
cheap jordan shoes
cheap ugg boots
coach factory outlet online
superdry sale
longchamp handbags
cheap oakley sunglasses
moncler outlet online
canada goose outlet online
hermes bag
burberry handbags
the north face outlet
coach outlet online
harden shoes
mlb jerseys
air jordans
moncler sale
nike cortez classic
pandora charms sale clearance
ferragamo shoes
pandora jewelry outlet
yeezy boost 350
michael kors uk
red bottoms
mulberry uk
cheap ugg boots
cheap jordans
michael kors outlet clearance
moncler outlet online
coach factory outlet online
burberry handbags
jordan shoes
adidas sneakers
canada goose uk
coach factory outlet online
ugg boots outlet
mulberry outlet uk
yeezy shoes
michael kors outlet canada
polo ralph lauren outlet
hermes outlet
ralph lauren sale
coach factory outlet online
kate spade handbags
coach outlet online
canada goose outlet
canada goose jacket
louis vuitton outlet online
coach outlet canada
ray ban sunglasses outlet
canada goose jackets
coach outlet online
cheap jordan shoes
burberry outlet online
helinlin20171019


Вернуться в «Сообщения об ошибках»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость