ネイティブ php で書かれたスムーズに動作する古い facebook アプリがあります。
今月は zend-framework 2 で書き直すことにしました。昨日、新しいアプリに切り替えた後、多くのメモリ不足エラーでサーバーがクラッシュしました。そこで、古いアプリに戻りました。
アプリをプロファイリングするために xdebug をインストールしました。memory_get_peak_usage() 関数を使用すると、メモリ使用量が多いことに気付きました。
古いアプリでは、静的ページは 1 MB のメモリしか使用しません。しかし、同じページで約7〜8 MBを使用する新しいもの。
webgrind の上位 2 行は次のとおりです。
Function Invocation Count Total Self Cost Total Inclusive Cost
Composer\Autoload\ClassLoader->loadClass 224 23.31 47.20
Composer\Autoload\ClassLoader->findFile 224 9.57 10.23
Apacheのabツールも試してみました
ab -n 50 -c 5 -C PHPSESSID=SESSIONID http://myhost.com
結果は次のとおりです。
Percentage of the requests served within a certain time (ms)
50% 368
66% 506
75% 601
80% 666
90% 1073
95% 1812
98% 2278
99% 2278
100% 2278 (longest request)
これらはすべて、localhost ではなく実稼働サーバーに起因します。
1 ページあたり 7 ~ 8 MB は正常ですか? そうでない場合、どうすれば減らすことができますか?zf2またはcomposerで探す必要がありますか?
必要に応じて、コード サンプルを提供できます。ありがとうございました。