Swoole 1.10.0 の新バージョンがリリースされ、多くの新機能分析が追加されました
Swoole 1.10.0 バージョンが最近リリースされ、多くの新機能が追加されましたので、次の記事では主に Swoole 1.10.0 バージョンの新機能に関する関連情報を紹介し、参考と学習のために共有します。以下へ
#まえがき#Swoole は、インターネット、モバイル通信、エンタープライズ ソフトウェア、クラウド コンピューティング、オンライン ゲームなどで広く使用できます。モノのインターネット(IOT)、車両のインターネット、スマートホームなどの分野。 PHP Swoole をネットワーク通信フレームワークとして使用すると、企業の IT 研究開発チームの効率が大幅に向上し、革新的な製品の開発にさらに集中できます。最近、PHP の非同期、並列、高性能ネットワーク通信エンジン Swoole のバージョン 1.10.0 がリリースされました。このバージョンでは、いくつかの新機能が追加されています。以下では多くを語る必要はありません。詳細な紹介を見てみましょう。
自動 DNS 解決
非同期クライアントの新しいバージョンでは、ドメイン名を解決するために swoole_async_dns_lookup を使用する必要がなくなりました。最下層は自動ドメイン名解析を実装します。クライアントは、connect メソッドの実行時にドメイン名を直接渡すことができます。
$client = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_ASYNC); $client->on("connect", function(swoole_client $cli) { $cli->send("GET / HTTP/1.1\r\n\r\n"); }); $client->on("receive", function(swoole_client $cli, $data){ echo "Receive: $data"; $cli->send(str_repeat('A', 100)."\n"); sleep(1); }); $client->on("error", function(swoole_client $cli){ echo "error\n"; }); $client->on("close", function(swoole_client $cli){ echo "Connection close\n"; }); //底层会自动进行异步域名解析 $client->connect('www.baidu.com', 9501);
遅いリクエストのログ
新しいバージョンでは、遅いリクエストの追跡が追加されていますリクエスト 遅いリクエストの PHP 関数呼び出しスタックを記録できる関数。
function test() { test_sleep(); } function test_sleep() { echo "sleep 5\n"; sleep(5); } $server = new swoole_server('127.0.0.1', 9501); $server->set([ 'worker_num' => 1, 'task_worker_num' => 1, 'trace_event_worker' => true, 'request_slowlog_timeout' => 1, 'request_slowlog_file' => '/tmp/trace.log', ]); $server->on('Receive', function($serv, $fd, $reactor_id, $data) { test(); $serv->send($fd, "Swoole: $data"); }); $server->start();
遅いリクエストを処理した後、/tmp/trace.log ログにエラー メッセージの行が出力されます:
[08-Jan-2018 15:21:57] [worker#0] pid 26905 [0x00007f60cda22340] sleep() /home/htf/workspace/swoole/examples/server/trace.php:10 [0x00007f60cda222e0] test_sleep() /home/htf/workspace/swoole/examples/server/trace.php:4 [0x00007f60cda22280] test() /home/htf/workspace/swoole/examples/server/trace.php:28 [0x00007f60cda22190] {closure}() /home/htf/workspace/swoole/examples/server/trace.php:42 [0x00007f60cda22140] start() /home/htf/workspace/swoole/examples/server/trace.php:42
##新しいストリーム モジュールは、Reactor、Worker、Task 間の通信を行います。プロセスがより便利になり、柔軟で最大限のデカップリングが可能になります。複雑なオンライン プロジェクトでは、ストリーム モードを使用して、リクエストの割り当てとスケジュールをより効率的にします。
$serv = new swoole_server("127.0.0.1", 9501); $serv->set(array( 'dispatch_mode' => 7, 'worker_num' => 2, )); $serv->on('receive', function (swoole_server $serv, $fd, $threadId, $data) { var_dump($data); echo "#{$serv->worker_id}>> received length=" . strlen($data) . "\n"; }); $serv->start();
Reactor と Worker の間の通信、dispatch_mode = 7 を使用して通信を有効にします
Worker と Task の間で、task_ipc_mode = 4 を使用して
- #Add Event::cycle function
## を有効にしますユーザー コードは、イベント ループの各ラウンドの終了時に呼び出される EventLoop フック関数をカスタマイズできます。独自のスケジューラを実装するには、Generator Yield または Promise クラスの Swoole フレームワークを使用すると便利です。
Swoole\Timer::tick(2000, function ($id) { var_dump($id); }); Swoole\Event::cycle(function () { echo "hello [1]\n"; Swoole\Event::cycle(function () { echo "hello [2]\n"; Swoole\Event::cycle(null); }); });
テーブルを更新::incr と Table::decr は符号付き整数をサポートしました
- PHP-7.2 バージョンと互換性がありました
- Event::del 関数がサポートされないことを修正しました標準入力ハンドル削除の問題
- タスクプロセスのタイマー間隔がクライアント受信タイムアウト未満となり、Client::recvデッドロックが発生する問題を修正しました
- ssl_host_name 構成項目を追加して、SSL/TLS ホストの正当性を検証します
- dispatch_mode = 3 を使用すると、すべてのワーカーがビジー状態になるとエラー ログが出力されます
- リスニング ポートのすべての接続をトラバースするポート イテレータを追加します
- 非 x86 プラットフォームでのテーブルのメモリ アライメントの問題を修正します
- BASE モードでの無効な max_request 構成の問題を修正 ##一部のクライアント ping フレームにマスク データが含まれている場合に、WebSocket サーバーが間違ったパケットを返す問題を修正
- HttpClient が HEAD メソッドを使用して Content-Length で応答し、スタックする問題を修正します。
- MySQL 非同期クライアントのサポートを強化します。 JSON 形式の場合
ダウンロード アドレス
GITHUB: https://github.com/swoole/ swoole-src/ releases/tag/v1.10.0オープンソース中国: https://gitee.com/swoole/swoole/tree/v1.10.0/
PECL: https:/ /pecl.php.net/package/swoole/1.10.0
ローカル ダウンロード: http://xiazai.jb51.net/201801/yuanma/swoole-src-1.10.0(jb51.net)。 rar
概要
興味があるかもしれない記事:
PHP 実装右回り印刷マトリックス (スパイラル マトリックス) メソッドの例の説明バイナリ ツリーが対称かどうかを判断する PHP の実装方法
PHP では 1 行のコードを使用します。 ディレクトリ内のすべてのファイルを削除する方法の例
以上がSwoole 1.10.0 の新バージョンがリリースされ、多くの新機能分析が追加されましたの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Numpy は Python の重要な数学ライブラリであり、効率的な配列演算と科学技術計算機能を提供し、データ分析、機械学習、深層学習などの分野で広く使用されています。 numpy を使用する場合、多くの場合、現在の環境でサポートされている機能を確認するために numpy のバージョン番号を確認する必要があります。この記事では、numpyのバージョンを簡単に確認する方法と具体的なコード例を紹介します。方法 1: numpy に付属の __version__ 属性を使用する numpy モジュールには __ が付属しています

Maven バージョンを確認する方法: 1. コマンド ラインを使用する; 2. 環境変数を確認する; 3. IDE を使用する; 4. pom.xml ファイルを確認する。詳細な紹介: 1. コマンド ラインを使用して、コマンド ラインに「mvn -v」または「mvn --version」と入力し、Enter キーを押します。これにより、Maven バージョン情報と Java バージョン情報が表示されます。 2. 環境を表示します。変数 、一部のシステムでは、環境変数をチェックして Maven のバージョン情報を確認し、コマンド ラインにコマンドを入力して Enter キーなどを押すことができます。

Linux でカールのバージョンを更新するには、以下の手順に従います。 現在のカールのバージョンを確認します。 まず、現在のシステムにインストールされているカールのバージョンを確認する必要があります。ターミナルを開き、次のコマンドを実行します。curl --version このコマンドは、現在のcurlバージョン情報を表示します。利用可能なcurlのバージョンを確認する:curlを更新する前に、利用可能な最新バージョンを確認する必要があります。 Curl の公式 Web サイト (curl.haxx.se) または関連ソフトウェア ソースにアクセスして、curl の最新バージョンを見つけることができます。 Curl ソース コードをダウンロードする:curl またはブラウザを使用して、選択した CURL バージョンのソース コード ファイル (通常は .tar.gz または .tar.bz2) をダウンロードします。

インストールされている Oracle のバージョンを簡単に確認するには、具体的なコード例が必要です。Oracle データベースは、エンタープライズ レベルのデータベース管理システムで広く使用されているソフトウェアとして、多くのバージョンとさまざまなインストール方法があります。私たちは日々の業務で、対応する運用やメンテナンスのために、インストールされている Oracle データベースのバージョンを確認する必要があることがよくあります。この記事では、インストールされているOracleのバージョンを簡単に確認する方法と具体的なコード例を紹介します。方法 1: Oracle データベースの SQL クエリを通じて、次のことができます。

Kylin オペレーティング システムのバージョンとカーネル バージョンの確認 Kirin オペレーティング システムでは、システム バージョンとカーネル バージョンを確認する方法を知ることが、システム管理とメンテナンスの基礎となります。 Kylin オペレーティング システムのバージョンを確認する方法 1: /etc/.kyinfo ファイルを使用する Kylin オペレーティング システムのバージョンを確認するには、/etc/.kyinfo ファイルを確認します。このファイルには、オペレーティング システムのバージョン情報が含まれています。次のコマンドを実行します: cat/etc/.kyinfo このコマンドは、オペレーティング システムの詳細なバージョン情報を表示します。方法 2: /etc/issue ファイルを使用する オペレーティング システムのバージョンを確認するもう 1 つの方法は、/etc/issue ファイルを参照することです。このファイルにはバージョン情報も含まれていますが、.kyinfo ファイルほど優れていない可能性があります。

Llama3 に関しては、新しいテスト結果が発表されました。大規模モデル評価コミュニティ LMSYS は、Llama3 が 5 位にランクされ、英語カテゴリでは GPT-4 と同率 1 位にランクされました。このリストは他のベンチマークとは異なり、モデル間の 1 対 1 の戦いに基づいており、ネットワーク全体の評価者が独自の提案とスコアを作成します。最終的に、Llama3 がリストの 5 位にランクされ、GPT-4 と Claude3 Super Cup Opus の 3 つの異なるバージョンが続きました。英国のシングルリストでは、Llama3 がクロードを追い抜き、GPT-4 と並びました。この結果について、Meta の主任科学者 LeCun 氏は非常に喜び、リツイートし、

1 分で完了: pip バージョンを更新する方法、具体的なコード例が必要です Python の急速な発展に伴い、pip は Python パッケージ管理の標準ツールになりました。ただし、時間の経過とともに、pip バージョンは常に更新されるため、最新の機能を使用し、潜在的なセキュリティ脆弱性を修正できるようにするには、pip バージョンを更新することが非常に重要です。この記事では、pip を 1 分で素早く更新する方法と具体的なコード例を説明します。まず、コマンド ライン ウィンドウを開く必要があります。 Windows システムでは、次のように使用できます。

DP インターフェースはコンピューターの重要なインターフェース ケーブルです。コンピューターを使用するときに、多くのユーザーは DP インターフェースが 1.2 か 1.4 かを確認する方法を知りたいと考えています。実際には、GPU-Z で確認するだけで済みます。 dp インターフェイスが 1.2 か 1.4 かを判断する方法: 1. まず、GPU-Z で「アドバンス」を選択します。 2. 「詳細」の「全般」の「Monitor1」を見ると、「LinkRate (current)」と「Lane (current)」の 2 つの項目が表示されます。 3. 最後に 8.1Gbps×4 と表示されていれば DP1.3 以降のバージョン、通常は DP1.4 を意味し、5.4Gbps×4 であれば、
