php の memory_get_usage

PHP
0
ngyuki @ngyuki

php の memory_get_usage って true にすれば php 本体や拡張のバグによるメモリリークによる使用量までわかるもの? PHP のメモリアロケーターが管理してるものしか判らならさそうな気もするけど(それだと false との違いが無い??)

2020-02-15 22:33:13
どぅーあき @do_aki

@ngyuki 拡張が独自に確保した分はどちらでも取得できないです。 引数の違いは、払い出された分のみか、確保した全体かの違い。

2020-02-15 22:35:59
ngyuki @ngyuki

@do_aki やっぱりそうですよね、普通に malloc とかされた分はわからない。

2020-02-15 22:40:05
ngyuki @ngyuki

laravelのキューワーカーがmemory_get_usageでメモリ使用量が増えたら再起動するようでメモリリーク対策かと思ったけど、PHPのユーザーレベルのリークならともかくPHP本体とか拡張でリークしてるとそれだけではカバーできなくて、ジョブの実行回数とか生存期間とかで再起動した方がいいような気もした twitter.com/ngyuki/status/…

2020-02-15 22:45:49
ngyuki @ngyuki

あ、補足すると、拡張でも emalloc とかで確保してれば取得されるだろうけれども、libxxx\.so みたいな拡張の更にその先にあるやつが独自に確保した分は取得されない twitter.com/do_aki/status/…

2020-02-15 23:14:43
ngyuki @ngyuki

libmysql が超巨大なメモリを mysql_store_result で確保しても PHP の memory_limit にかからないのはたぶんそのためです。fetchAll とかで PHP 側に持ってくるとかかる

2020-02-15 23:18:34