【发布时间】:2020-05-18 03:10:36
【问题描述】:
我在我的班级update() 的方法中使用读取 csv 文件的构造(大约 25000 行)
if(($handle = fopen($this->csv_url, 'r')) !== false) {
$row = 0;
while(($data = fgetcsv($handle)) !== false)
{
if ($row === 0) { $row++; continue; }
// Doing update a few meta in current product
// I detect product by sku
unset($data);
$row++;
}
fclose($handle);
}
3000 种产品的内存已用完。 (在 php.ini 文件中设置 250MB)
有人有什么想法吗?对不起我的英语。
【问题讨论】:
-
首先,你可以尝试使用
$data = null而不是unset来更快地释放内存(stackoverflow.com/questions/584960/…)。另外,设置更高的WP_MEMORY_LIMIT和WP_MAX_MEMORY_LIMIT怎么样? -
感谢您的评论。我试过使用 NULL - 它仍然不起作用。此外,memory_limit 当前设置为 256MB(最大值)。
-
256MB 不是最大的,我已经为特定请求的特殊用例设置了 4GB。 (4096MB)
标签: php csv memory woocommerce fgetcsv