Swoole の公式 Web サイトの自己紹介は「本番環境向け PHP 非同期ネットワーク通信エンジン」 まず、Swoole は Http、TCP、UDP をサポートするネットワーク アプリケーション開発ツールです、WebSocket。 (推奨される学習: swoole ビデオ チュートリアル )
Swoole と従来の PHP 開発の間には違いがあり、理解する必要がある概念もあります。現在の Swoole ベースのフレームワークを使用して開発する場合、開発習慣は従来の TP および LV フレームワークと似ています。
では、なぜ Swoole を使用するのでしょうか?
次の点があると思います:
繰り返しロードによるパフォーマンスの低下を回避し、大幅なパフォーマンスを向上させるためにメモリに常駐する
Coroutine は、I/O 集中型のシナリオ (WeChat 開発、支払い、ログインなど) の同時処理機能を非同期的に向上させます。
Http、WebSocket、TCP、UDP およびその他のアプリケーションを便利に開発し、他のアプリケーションと通信できます。ハードウェア
#PHP 高性能マイクロサービス アーキテクチャが現実になりました
常駐メモリ
現在の従来の PHP フレームワークは、それぞれの処理を実行します。 request の前に、フレームワーク ファイルと設定をロードする操作を行う必要があります。これはパフォーマンスの問題の大きな原因になる可能性がありますが、Swoole では、一度ロードして何度も使用すると、そのような問題は発生しません。
コルーチン
コルーチンと言えば、まずプロセスとスレッドについて簡単に説明する必要があります。ご存知のとおり、プロセスは多くのリソースを占有します。リクエストを処理するには作成する必要がありますが、それを得る価値はありません。マルチスレッド アプリケーションが多数あります。CPU レベルでは、複数のコアが複数のタスクを実行します。作成されるスレッドが多すぎると、スレッド スケジューリングが失われます。
コルーチンはシングルスレッドベースで実装されているため、I/O の待機中に CPU リソースを無駄にすることなく、CPU リソースの使用を最大限に活用できます。もちろん、コルーチンの数が増えると占有するメモリも増えますが、これは許容範囲であり、プロセスやスレッドに比べて占有されるリソースは比較的小さいです。
コルーチンを使用する場合、ファイルの読み取りと書き込み、インターフェイスの要求などのシナリオが発生すると、コルーチンは自動的に一時停止され、タスクを実行するために CPU が他のコルーチンに与えられます。スレッド CPU リソースの使用率無駄を削減し、パフォーマンスを向上させます。
コルーチン コード例:
<?php use Swoole\Coroutine as co; // 协程 $time = microtime(true); // 创建10个协程 for($i = 0; $i < 10; ++$i) { // 创建协程 go(function() use($i){ co::sleep(1.0); // 模拟请求接口、读写文件等I/O echo $i, PHP_EOL; }); } swoole_event_wait(); echo 'co time:', microtime(true) - $time, ' s', PHP_EOL; // 同步 $time = microtime(true); // 创建10个协程 for($i = 0; $i < 10; ++$i) { sleep(1); // 模拟请求接口、读写文件等I/O echo $i, PHP_EOL; } echo 'sync time:', microtime(true) - $time, ' s', PHP_EOL;
以上がPHPでswooleを使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。