ホームページ  >  記事  >  PHPフレームワーク  >  swoole が PHP のパフォーマンスを向上させる仕組み

swoole が PHP のパフォーマンスを向上させる仕組み

(*-*)浩
(*-*)浩オリジナル
2019-12-07 14:19:002674ブラウズ

swoole が PHP のパフォーマンスを向上させる仕組み

Swoole のネットワーク リクエスト処理はイベントベースであり、基盤となる epoll/kqueue 実装を最大限に活用しているため、数百万のリクエストに非常に簡単に対応できます。

Swoole4 は新しいコルーチン カーネル エンジンを使用しており、現在はフルタイムの開発チームを擁しているため、PHP の歴史の中でも前例のない時期に突入しており、迅速なパフォーマンス向上のための独自の可能性が提供されています。 (推奨学習: swoole ビデオ チュートリアル )

Coroutine

Swoole4 以降には、高可用性を備えた組み込みコルーチンがあります。完全同期コードを使用して非同期パフォーマンスを実現でき、PHP コードには追加のキーワードがなく、コルーチンのスケジューリングが内部で自動的に実行されます。

開発者はコルーチンを超軽量スレッドとして理解でき、プロセス内で数千のコルーチンを簡単に作成できます。

同時リクエスト 10,000 件の MySQL から大量のデータを読み取るのにかかる時間はわずか 0.2 秒です

$s = microtime(true);
Co\run(function() {
    for ($c = 100; $c--;) {
        go(function () {
            $mysql = new Swoole\Coroutine\MySQL;
            $mysql->connect([
                'host' => '127.0.0.1',
                'user' => 'root',
                'password' => 'root',
                'database' => 'test'
            ]);
            $statement = $mysql->prepare('SELECT * FROM `user`');
            for ($n = 100; $n--;) {
                $result = $statement->execute();
                assert(count($result) > 0);
            }
        });
    }
});
echo 'use ' . (microtime(true) - $s) . ' s';

ハイブリッド サーバー

次のことができます。イベント ループ上に複数のサービス (TCP、HTTP、Websocket、HTTP2) を作成し、数万のリクエストを簡単にホストできます。

rree

以上がswoole が PHP のパフォーマンスを向上させる仕組みの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。