为什么我的magento脚本使用超过128MB的内存?

时间:2015-12-04 02:42:54

标签: php magento

正如这个标题所说,我已经得到了以下一些代码,为了这个问题我已经减少了。内存耗尽显示:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 548 bytes) in C:\xampp\htdocs\whiterunway-migration\magento\lib\Zend\Db\Statement\Pdo.php on line 228

但我无法理解为什么。我在每次迭代时都会覆盖$ product变量。

$product_ids = Mage::getModel('catalog/product')->getCollection();
$products_out = [];
foreach ( $product_ids as $product_id ) {
  $product = Mage::getModel('catalog/product')->load($product_id->getId());
  $a = $product->getMetaTitle();
}
echo count($products_out);

我在这里看不到任何内存泄漏。

1 个答案:

答案 0 :(得分:2)

内存耗尽,因为您正在将所有产品的对象加载到内存中。与行:

$product = Mage::getModel('catalog/product')->load($product_id->getId());

加载集合后不需要该行

此外:

$a = $product->getMetaTitle();

应该改为

$a =$product_id->getMetaTitle();