ホームページ > 記事 > PHPフレームワーク > ワーカーマンのパフォーマンスはどうですか?
Workerman が優れたパフォーマンスを発揮する理由
シンプルなプロセス通信モデルにより、Workerman ソフトウェアは他の複雑なプロセス モデル ソフトウェアよりも効率的になります。 (推奨学習: workman チュートリアル )
workerman の実行中は、ディスクの読み取りとコンパイルを繰り返し行わないようにします。単一 PHP ファイルは、プロセスのライフサイクル中に一度ロードされてコンパイルされる限り、メモリ内に常駐し、ディスクから読み取られたり、再度コンパイルされたりすることはありません。
workerman は、リクエストの初期化の繰り返し、実行環境の作成、字句解析、構文解析、オペコードのコンパイルと生成、リクエストのクローズなど、多くの時間のかかる手順を排除します。 実際、Workerman の実行後は、ディスク IO と PHP ファイルのコンパイルのオーバーヘッドはほとんどなく、残りは単純な計算プロセスだけであるため、Workerman は非常に高速に実行されます。
データまたはリソースはグローバルに共有できますWorkerman の複数のリクエストでデータまたはリソースを共有できます。現在のリクエストによって生成されたクラスのグローバル変数または静的メンバーは、次回共有されます。リクエストはまだ有効です。これは、オーバーヘッドを削減し、運用効率を向上させるのに非常に役立ちます。 たとえば、企業がデータベース接続を一度初期化する限り、その接続はグローバルに共有できるため、真のデータベース長期接続が実現します。これにより、ユーザーが要求するたびに新しい接続を作成する必要がなくなり、接続中の 3 ウェイ ハンドシェイク、接続後の権限確認、切断時の 4 回のウェーブなどの時間のかかる対話プロセスが回避されます。
データベースだけでなく、redis、memcacheなども有効です。これらのオーバーヘッドとネットワーク相互作用を軽減すると、Workerman の実行が高速になります。
余分なネットワーク オーバーヘッドなし従来の PHP アプリケーションは、外部ネットワーク サービスを提供するために Apache、nginx、その他のコンテナを使用する必要があるため、Apache と nginx の追加レイヤーが必要になります。コンテナから PHP プロセスへのデータ転送のオーバーヘッドを待ちます。 そして、Apache または nginx コンテナが実行されているため、サーバー リソースがさらに消費されます。 Workerman ではこのようなオーバーヘッドが発生しませんが、これは Workerman 自体が PHP のプロセス管理機能とネットワーク通信機能を備えたサーバーコンテナであるためであり、apache、nginx、php-fpm などのコンテナに依存せず、独立して実行できるため、パフォーマンスが高くなります。 。
以上がワーカーマンのパフォーマンスはどうですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。