получить использование памяти PHP в случае параллельных скриптов - PullRequest
1 голос
/ 11 апреля 2019

Я пытаюсь получить память, используемую всем приложением, на случай, если позади были запрошены параллельные запросы или какой-то cronjob. Из документа PHP я нашел:

memory_get_usage ([ bool $real_usage = FALSE ] ) : int

memory_get_peak_usage ([ bool $real_usage = FALSE ] ) : int

Я проверил эти функции следующим образом:

Я создал два php-файла, которые содержат нижеприведенные скрипты:

//app.php
<?php

$startMemory = memory_get_peak_usage()/1024;
echo "memory before script : ".$startMemory. "bytes <br>";

$array = new SplFixedArray(10000000);
for ($i = 0; $i < 10000000; ++$i) {
    $array[$i] = $i;
}

$endMemory = (memory_get_peak_usage()/1024);
$scriptMemory = $endMemory - $startMemory;

echo  " memory after script : ". $endMemory. ' bytes <br>';
echo  " script memory  : ". $scriptMemory. ' bytes';

И второй:

//app2.php
<?php

$startMemory = memory_get_peak_usage()/1024;
echo "memory before script : ".$startMemory. "bytes <br>";

$array = new SplFixedArray(100000);
for ($i = 0; $i < 100000; ++$i) {
    $array[$i] = $i;
}

$endMemory = (memory_get_peak_usage()/1024);
$scriptMemory = $endMemory - $startMemory;

echo  " memory after script : ". $endMemory. ' bytes <br>';
echo  " script memory  : ". $scriptMemory. ' bytes <br>';

Смысл в том, чтобы app.php запускал скрипт, который может время, а затем выполните app2.php, чтобы увидеть, если $ startMemory в app2.php больше, чем $ startMemory в app.php. но, к сожалению, это не так.

Результаты:

//app.php
memory before script : 387.9921875bytes 
memory after script : 156640.234375 bytes 
script memory : 156252.2421875 bytes


app2.php
memory before script : 386.4453125bytes 
memory after script : 1950.6328125 bytes 
script memory : 1564.1875 bytes 

Вообще говоря, это похоже на получение используемой памяти реальным сценарием, а не на то, чтобы использовать память, используемую другими.

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