Например, у меня есть функция, которая получает продукты из базы данных, я звоню по частям по категориям, потому что без этого она съест всю память. Поэтому, когда я звоню по частям, память не очищается и запускается другой процесс, который потребляет больше памяти. Я мог бы разделить по файлам, но мне нужен более удобный метод.
function getproducts($cat){
error_log("START | ".$cat." | MEMORY: ".formatBytes(memory_get_usage(true)), 0);
$args = array(
'tax_query' => array(
array(
'taxonomy' => 'product_cat',
'field' => 'term_id',
'terms' => $cat
)
),
'post_type' => 'product',
'posts_per_page' => -1
);
$the_query = new WP_Query( $args );
error_log("QTY: ".$the_query->found_posts." | Mem: ".formatBytes(memory_get_usage(true)), 0);
error_log("END | MEMORY: ".formatBytes(memory_get_usage(true)), 0);
}
getproducts('part1');
getproducts('part2');
getproducts('part3');
информация журнала:
[17-Jan-2020 09:33:07 UTC] START | part1 | MEMORY: 2 MB
[17-Jan-2020 09:33:14 UTC] QTY: 3151 | Mem: 198 MB
[17-Jan-2020 09:33:14 UTC] END | MEMORY: 198 MB
[17-Jan-2020 09:33:14 UTC] START | part2 | MEMORY: 198 MB
[17-Jan-2020 09:33:15 UTC] QTY: 533 | Mem: 204 MB
[17-Jan-2020 09:33:15 UTC] END | MEMORY: 204 MB
Как вы видите, память суммируется.