Это утечка памяти в промежуточном программном обеспечении Guzzle?

Показывает ли следующий вывод утечку памяти?
На моем рабочем сервере заканчивается память. Хотя это стабильное распределение, но оно не освобождает память после выполнения.

Вот проблема https://github.com/guzzle/oauth-subscriber/issues/47#issuecomment-148480943

use GuzzleHttp\HandlerStack;
use GuzzleHttp\Subscriber\Oauth\Oauth1;

function stack_it()

{
$stack = HandlerStack::create();

$middleware = new Oauth1([
'consumer_key'    => NULL,
'consumer_secret' => NULL,
'token'           => NULL,
'token_secret'    => NULL,
]);
$stack->push($middleware, 'oauth_1');

$stack->remove('oauth_1');
}

echo 'initial: '.memory_get_usage().PHP_EOL;
for ($i=0; $i < 20; $i++)
{
$this->stack_it();

gc_collect_cycles();
echo memory_get_usage().PHP_EOL;
}

die();

Выход

initial: 3818976
4282040
4282040
4282040
4282040
...
4282040
4282040
4282040
4282040

0

Решение

То, что вы видите, является нормальным потреблением памяти HandlerStack, Я отсылаю вас к источнику HandlerStack. Тот факт, что использование памяти не увеличивается с каждой последовательной итерацией, указывает на отсутствие утечки.

Вы заметите, что когда HandlerStack::create() В обработчик добавлена ​​поддержка файлов cookie, исключений ошибок HTTP, повторных вызовов и подготовки тела перед отправкой.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]