PHP процесс съедает всю память - PullRequest
0 голосов
/ 17 января 2020

Например, у меня есть функция, которая получает продукты из базы данных, я звоню по частям по категориям, потому что без этого она съест всю память. Поэтому, когда я звоню по частям, память не очищается и запускается другой процесс, который потребляет больше памяти. Я мог бы разделить по файлам, но мне нужен более удобный метод.

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

Как вы видите, память суммируется.

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