webmanパフォーマンス

伝統的なフレームワークのリクエスト処理プロセス

  1. nginx/apacheがリクエストを受け取る
  2. nginx/apacheがリクエストをphp-fpmに渡す
  3. php-fpmが環境を初期化する(例:変数リストを作成)
  4. php-fpmが各拡張/モジュールのRINITを呼び出す
  5. php-fpmがディスクからphpファイルを読み取る(opcacheを使うことで回避可能)
  6. php-fpmが字句解析、構文解析を行い、opcodeにコンパイルする(opcacheを使うことで回避可能)
  7. php-fpmがopcodeを実行する(8, 9, 10, 11を含む)
  8. フレームワークが初期化され、コンテナ、コントローラ、ルーティング、ミドルウェアなどのさまざまなクラスのインスタンスを生成する。
  9. フレームワークがデータベースに接続し、権限を確認し、redisに接続する
  10. フレームワークがビジネスロジックを実行する
  11. フレームワークがデータベース、redis接続を閉じる
  12. php-fpmがリソースを解放し、すべてのクラス定義、インスタンス、シンボルテーブルを破棄する
  13. php-fpmが順番に各拡張/モジュールのRSHUTDOWNメソッドを呼び出す
  14. php-fpmが結果をnginx/apacheに転送する
  15. nginx/apacheが結果をクライアントに返す

webmanのリクエスト処理プロセス

  1. フレームワークがリクエストを受け取る
  2. フレームワークがビジネスロジック(opcodeバイトコード)を実行する
  3. フレームワークが結果をクライアントに返す

その通り、nginxのリバースプロキシがない場合、フレームワークはこの3ステップだけです。これはPHPフレームワークの極致とも言え、webmanのパフォーマンスは従来のフレームワークの数倍、場合によっては数十倍です。

さらに詳しい情報は 負荷テスト をご覧ください。