ベンチマークテストを実行して、私のアプリケーションが非常に遅く動作している理由を調べました。私たちのアプリケーションは、RDS上のmysqlデータベースを持つec2 m3インスタンス上で動作します。最初は、RDSや悪い設定と関係があると思っていました。しかし、私がコードにタイムチェックを入れ始めたとき、自分のコードと同じくらい最適化されていることが判明しました。明らかに、ラーベルカーネル自体は実行に長時間を要していました。Laravel Illuminate Contracts Http index.phpのカーネルレスポンスが1秒以上実行する
私の主なコントローラの1つで、コントローラ内のすべてのコードの平均実行時間は約200〜175msでした。
しかし、このページは非常に重くて1.3秒かかるでしょう!コントローラーのコードに間違いがないことは間違いありませんでした。問題を引き起こしているはずなことがわかったので、Laravelアプリケーションの公開ディレクトリのindex.phpファイルのベースコードをベンチマークし、Illuminate \ Contracts \ Http \ Kernelオブジェクトと応答を取得/送信するだけで1120msかかりました!
<?php
require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';
// FROM HERE ->
$kernel = $app->make('Illuminate\Contracts\Http\Kernel');
$response = $kernel->handle(
$request = Illuminate\Http\Request::capture()
);
$response->send();
//<--to here takes 1120 ms of which 200 ms is my code in the controller
$kernel->terminate($request, $response);
私は、これは、フレームワークの問題であると仮定していますが、どのように私はこれを克服することができます - 1秒の平均応答時間は、ここでは受け入れられません。