Сценарий экспорта Magento, занимающий всю память - утечка памяти? - PullRequest
1 голос
/ 10 сентября 2010

У меня есть скрипт, который обрабатывает каталог продукции Magento и экспортирует его.

К сожалению, он убит на полпути, потому что в итоге он использует слишком много памяти.

Боюсь, что я столкнулся с проблемой, когда сборщик мусора php не смог освободить циклические ссылки, что привело к утечке памяти.

Я пробовал исправление, предложенное на http://ringsdorff.net/2009/07/23/guest-post-fix-for-memory-leaks-in-magento/ но, к сожалению, это нарушает сценарий (данные вообще не экспортируются).

Кто-нибудь знает, есть ли другие исправления для этой проблемы?Спасибо!

Ответы [ 2 ]

3 голосов
/ 10 сентября 2010

Каждый раз, когда вы используете catalog/product объекты, на самом деле происходит утечка памяти, и ваше приложение не сможет экспортировать все сразу. Это, скорее всего, причина структуры основного модуля Dataflow. В прошлом я использовал два решения:

  1. Разбейте экспорт на куски, как это делает DataFlow.
  2. Напишите свои собственные обертки для данных, а не используйте Magento

Если вы воспользуетесь неявным третьим вариантом исправления утечки памяти в Varien, пожалуйста, не забудьте внести ее обратно в качестве исправления. :)

Надеюсь, это поможет!

Спасибо, Джо

2 голосов
/ 17 ноября 2010

Брайан Кит обнаружил постоянно расширяющийся массив, который потребляет память при импорте / экспорте в 1.4.1.1, и предлагает следующее исправление:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...