【问题标题】:Memory leak when using Http facade with Laravel Octane将 Http 外观与 Laravel Octane 一起使用时的内存泄漏
【发布时间】:2022-04-19 16:12:44
【问题描述】:

有谁知道为什么当我将 Http 外观与 Laravel Octane 一起使用时,为什么每个请求的内存都会增加?

Route::get('test', function () {
Http::get('https://swapi.dev/api/people/1');

return memory_get_usage();
});

但是当我像这样使用 Guzzle 客户端时,它并没有泄漏

Route::get('test', function () {
    $client = new \GuzzleHttp\Client();
    $client->get('https://swapi.dev/api/people/1');
    return memory_get_usage();
});

【问题讨论】:

    标签: laravel memory-leaks request laravel-facade laravel-octane


    【解决方案1】:

    我认为类对象没有被垃圾收集。因为它在某处被使用。完成后取消设置。

    它应该释放使用的内存。

    【讨论】:

    • 如果这是真的,我应该在 Octane 的存储库上发布这个问题。另外我不确定如何取消设置这个Http::get('https://swapi.dev/api/people/1'); 如果我保存结果然后取消设置变量它没有任何区别
    【解决方案2】:

    这实际上是 Laravel HTTP 外观中的一个错误,因为我在另一个上下文中遇到了同样的问题。

    【讨论】:

      【解决方案3】:

      这是我从 Laravel 官方团队成员那里得到的回复。

      https://github.com/laravel/octane/issues/481

      关键是这不是一个错误,它正在发生是因为垃圾收集器还没有完成他的工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-03
        • 1970-01-01
        • 2016-05-09
        • 2017-03-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多