есть такая либа https://github.com/Invertus/brad запуск в консоли файл brad.cron.php проблема в том что оно много ест памяти 6гб и более как найти утечку?
может есть методики отладки? ну кроме пошагового xdebug я пытался вызывать memory_get_usage, затем unset но не помогает
Просто возможно, что апишка по тупому реализована и никаких утечек нет Бывает, что апишку реализовали когда в магазине было пару тыщ товаров, и апишка вываливала сразу всё и было норм. Магазин вырос, а апишка осталась. Надо прикручивать пагинациихуяции
сам сайт это prestashop чаще всего спотыкается тут https://github.com/PrestaShop/PrestaShop/blob/develop/classes/db/DbPDO.php#L178 вызывается тут https://github.com/Invertus/brad/blob/v2/src/Repository/CategoryRepository.php#L151
Ну всё правильно. Складывает в массив результаты запроса и массив разростается и озу кончается. Ты походу так зарезал лимит что до товаров дело не доходит а уже на категориях падает. --- Добавлено --- вот пример апишки в которой реализована пагинация. вот пример запроса товаров (если передать заголовок "Accept:application/json", то данные вернутся JSON формате). внизу раздел "meta" в котором указано, сколько еще спагинированых страниц существует для этого запроса.
тем более что цикл вызывается только 1 раз вот проверка https://github.com/Invertus/brad/blob/v2/src/Repository/CategoryRepository.php#L126
Тышпрограммист. Разбирайся За тебя этого ни кто не сделает. Я в этой либе не копался, а лишь предположил. --- Добавлено --- Вряд ли там что-то сверхсложное происходит. Тебе придется изучить, как она работает.
потому, что в разных местах кончается память --- Добавлено --- у тебя памяти 128 мегабайт о каких 6 гигах ты говоришь ? или было 6G ?
я счас тестирую с разными размерами памяти хочу найти место где происходит утечка поэтому уменьшаю память плюс чтобы скрипт быстрее закончил работу получается на каждом шагу скрипта растет память? и на любой конструкции память может кончиться? даже если на этой строке нету утечки?
память уходит (основная её часть) не на конструкции, а на переменные, массивы и объекты тебе нужно найти то место, которое собирает ацкий массив товаров и прикрутить пагинацию