webmanパフォーマンス
伝統的なフレームワークのリクエスト処理プロセス
- nginx/apacheがリクエストを受け取る
- nginx/apacheがリクエストをphp-fpmに渡す
- php-fpmが環境を初期化する(例:変数リストを作成)
- php-fpmが各拡張/モジュールのRINITを呼び出す
- php-fpmがディスクからphpファイルを読み取る(opcacheを使うことで回避可能)
- php-fpmが字句解析、構文解析を行い、opcodeにコンパイルする(opcacheを使うことで回避可能)
- php-fpmがopcodeを実行する(8, 9, 10, 11を含む)
- フレームワークが初期化され、コンテナ、コントローラ、ルーティング、ミドルウェアなどのさまざまなクラスのインスタンスを生成する。
- フレームワークがデータベースに接続し、権限を確認し、redisに接続する
- フレームワークがビジネスロジックを実行する
- フレームワークがデータベース、redis接続を閉じる
- php-fpmがリソースを解放し、すべてのクラス定義、インスタンス、シンボルテーブルを破棄する
- php-fpmが順番に各拡張/モジュールのRSHUTDOWNメソッドを呼び出す
- php-fpmが結果をnginx/apacheに転送する
- nginx/apacheが結果をクライアントに返す
webmanのリクエスト処理プロセス
- フレームワークがリクエストを受け取る
- フレームワークがビジネスロジック(opcodeバイトコード)を実行する
- フレームワークが結果をクライアントに返す
その通り、nginxのリバースプロキシがない場合、フレームワークはこの3ステップだけです。これはPHPフレームワークの極致とも言え、webmanのパフォーマンスは従来のフレームワークの数倍、場合によっては数十倍です。
さらに詳しい情報は 負荷テスト をご覧ください。