Laravel DebugbarにPHPのmemory-limitを食いつぶされた話

公開日:2018-10-22
最終更新:2018-10-24
※この記事は外部サイト(https://qiita.com/sisi_maExtend/items/181b...)からのクロス投稿です

Laravel5.5だよ。

リリース前のテスト中、Error: Allowed memory size of 134217728 bytesが出た。
適当に「Laravel メモリ」で調べてみると、Eloquentを脳死でget()してると結構起こるとのこと。
というわけでcursor()だなんだで処理を置き換えて、さあこれで大丈夫だろうと思ったらどうにも直らない。

しかしmemory_get_usageしてみても10485760としか出ず。

結論

タイトルの通りだこの野郎。 Laravel Debugbar(の、おそらくクエリログ機能)が全部持ってってた。 memory_get_usageで拾ってたのは処理本来のメモリ消費量だけだったってことだろうか。

.envにDEBUGBAR_ENABLED=falseオプションを書いてやると機能をまるっと停止できる。 手っ取り早く止めたいならこれでおk。

余談:↑に至るまでの経緯

「Laravel メモリ」で調べてた時に、デフォルトでメモリにクエリログ記録するから無効にしたほうがいいよーみたいな記事も見たのでとりあえず以下のコードを試してみた……のだが、効果がなかった。

\DB::connection()->disableQueryLog();

とりあえずIlluminate\Database\Connection.phpまで追っかけて、disableQueryLog()の処理を見てみる。

    public function disableQueryLog()
    {
        $this->loggingQueries = false;
    }

loggingQueriesにfalseをセットしてる。しかしそのloggingQueriesは追ってみたらデフォルトでfalse。つまり\DB::connection()->disableQueryLog();はやっぱり無意味。 バージョンアップで変わったのですかね?ともかく冤罪だった。

ふと思い出す。「Debugbarにクエリログ出てるやんけ!」
試しに止めたらさっくり動いたと。こんなんで丸一日潰したの結構悲しかった。

記事が少しでもいいなと思ったらクラップを送ってみよう!
54
+1
@sisima'の技術ブログ

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする