workerman swooleと比較して、実際の開発プロジェクトではどちらを選びますか?初心者がどちらを学ぶのが良いかについてアドバイスはありますか?
インターネット上で、Swoole のパフォーマンスが Workerman よりもはるかに高いというコメントがありますが、これは本当ですか?
まず、それぞれの紹介を見てみましょう:
workerman: オープンソースの高性能 PHP アプリケーション コンテナー(github 10.2k )
workerman は、純粋な PHP で書かれたネットワーク フレームワークで、高い同時実行性と超高い安定性をサポートしており、従来の PHP アプリケーションの範囲を大幅に突破しています。インスタント メッセージング、APP 開発、小規模プログラム開発、チャット ルーム、モバイル ゲーム サーバー、オンライン ゲーム、ハードウェア通信、車両のインターネット、スマート ホーム、モノのインターネット、その他の分野で広く使用されています。 [workerman チュートリアル ]
TCP ロング接続のサポート、Websocket、HTTP およびその他のプロトコルのサポート、カスタム プロトコルのサポート、非同期 Mysql、非同期 Redis、非同期 Http、MQTT IoT クライアント、非同期メッセージ キューをサポートなどの高性能コンポーネントが多数あります。
Swoole: PHP コルーチン フレームワーク (github 17.6k)
Swoole は、C/C で書かれたネットワーク通信拡張機能、Swooleこれにより、PHP 開発者は高性能かつ同時実行性の高い TCP、UDP、Unix Socket、HTTP、WebSocket、およびその他のサービスを作成できるため、PHP は Web 分野に限定されなくなります。
Swoole は、インターネット、モバイル通信、クラウド コンピューティング、オンライン ゲーム、モノのインターネット (IOT)、車両のインターネット、スマート ホームなどの分野で広く使用できます。 PHP Swoole を使用すると、企業の IT 研究開発チームの効率が大幅に向上し、革新的な製品の開発にさらに集中できます。
この 2 つの機能は似ています。
それでは、どちらの方が優れているのでしょうか?どうやって選べばいいのでしょうか?
#PHPer の使用経験と意見を聞いてみましょう
#1: 学習コスト
# #まず第一に、php 中国語 Web サイトの見方を説明しましょう:
初心者には、シンプルで使いやすく、拡張性が高く、すぐに始めることができる Workerman をお勧めします。 ! PHP 言語の価値はシンプルで使いやすいことではないでしょうか?
現在、インターネット全体で Workerman に関する最新のコースはほとんどありません。そのため、PHP 中国語 Web サイトは最近、一連のセットを慎重に記録しました。PHP Workerman の基礎から実践的なコースが本日開始されました。
学生のスキル向上に役立つことを願っています。コース名:
《PHP Workerman ThinkPHP6 インスタント メッセージング チャット システム》
##(ThinkPHP6 Workerman/websocket)
このコースは、WebSocket サービスを作成するために php workerman によって開発されたリアルタイム Web チャット システムに基づいています。コースの主な内容は次のとおりです。
##6. カスタマー サービスの経験がある人はオンライン顧客リストなどを取得します
##7.チャットメッセージとその他のコンテンツの保存。 #興味のある学生は、新しいイベント価格を確定するために急いでバスに乗ってください。期間限定割引活動: 元価格 399 元、期間限定割引価格¥189元、12月8日まで! すべてのコースは 12 月 8 日までに更新される予定で、それまでに価格が
値上げされる予定です。
https://www.php.cn/course/1475.html
( コース相談コースウェア資料集 )
ネットユーザーの意見:
ネットユーザーの評価 1:
ネットワーク プログラミングやマルチプロセス開発の経験がない場合は、Workerman から始めることをお勧めします。結局のところ、Workerman は純粋な PHP コードで実装されています。その原理と処理を理解するのにそれほど問題はありません。深い問題、大きな障害。
Workerman を深く学習することで、ネットワーク プログラミングに関する基礎知識、この種のプログラムがどのように設計および実装されるか、および詳細な注意点を学ぶことができます。また、マルチプロセス プログラムの開発方法や、プロセス間の管理と通信の方法を学ぶこともできます。
これらを明確に理解すると、swooleへの移行の敷居はそれほど高くないと感じられると思いますが、swooleを直接使い始める場合、少なくともプロセス間の管理や通信は自分で実装する必要があります。アイデアさえないかもしれません。
浅いところから深いところまで、基礎から始めて、上級レベルに進みます。
ネットユーザーの評価 2:
swoole は PHP の拡張機能であり、他の拡張機能に依存しません。最下層は C であり、次のことができます。プログラム内で直接呼び出され、パフォーマンスが良く、より高いです。 Workman はネイティブ PHP を使用し、他の拡張機能に依存しているため、ソース コード パッケージをダウンロードする必要があります。
前者は、swoole が php に提供される API であると理解できますが、比較的ネイティブであるため、実際にはビジネス ロジックをカプセル化せず、自分で開発する必要があります。後者は特定のビジネス ニーズをカプセル化しており、簡単に始めることができます。
swooleを学び始めて数ヶ月ですが、コントロールが難しく、より基礎的な知識が必要で、実際の業務で使用することはほとんどありませんが、学ぶ価値があると感じています。
つまり、どちらを使用するかは用途と世間の需要によって決まります。開発コストはワークマンの方が安いかもしれませんが、特定のニーズに応じてスウールを検討することもできます。
ネットユーザーの評価 3:
ワーカーマンを推薦します! Swoole の直接 C 拡張セットは上級初心者には適していません。初心者が求めるのは段階的で安定したステップバイステップです。まずパラダイムをマスターしてから、ステップバイステップで進んでください。
workerman は公式 Web フレームワーク webman もリリースしており、そのストレステストのランキングは swoole よりも高く、現時点で最も成熟した低コストの PHP ソリューションであると言っても過言ではありません。まだ低いです。
ネット民の評価 4:
swoole は C 言語で開発された PHP 拡張クラスで、パフォーマンスの面では優れており、非常に優れています。 PHP プログラムに適しています。開発者が基盤となる通信サービスの開発を理解するには、多くの知識が必要です。Swoole は通常、経験豊富な開発者に適しています。 Workerman は、簡単に始めることができる純粋な PHP 開発フレームワークです。 PHP を知っていれば、それを使用してソケット アプリケーション サービスを開発できると言われています。
まずworkermanを学習してからswooleを学習することをお勧めします。
ネットユーザーの評価 5:
workerman は、純粋な PHP 実装の常駐メモリ フレームワーク、同期ブロッキング モードです。常駐を容易にするために、最初にこれを学習してください。メモリ パターンとメモリ リークについて一定の理解を持っています。
Workerman は swoole に慣れてから学習します swoole には常駐メモリに加えて、従来の開発モデルには存在しないコルーチンもあります。コルーチンはスレッドに似ており、開発プロセスでは、各コルーチン内のデータ間の操作の問題に焦点を当てる必要があります。
2: 実用化
ネットユーザーの評価 1:
私のオープンソース プロジェクトの 1 つは、Workerman プロジェクト ビューを使用しています。これは、依存する環境が少なく、開発がそれほど難しくありません。同時リクエストが数万件もなければ、workerman が推奨されます。しかし、私の経験によると、プロジェクトの 95% には数万の同時実行がありません。初心者の方にはworkermanを使うのもおすすめです。 swoole も同時に学習できます 結局のところ、コルーチンはハードウェア リソースを節約します。また、workerman の著者は、さまざまな質問に非常に忍耐強く答えてくれます。これほど熱心なネチズンのコメント 2:
すごいですね。 Workerman は拡張機能です。Workerman を使用しているときに、swoole を使用する必要がある場合は、それを使用することもできます。アプリケーションの観点からは、Workerman GateWorker の方が好きです。これらは多くの問題を直接解決し、基礎研究を回避できます。
ネットユーザーの評価 3:
workerman はよりシンプルで安定しています。私は今でもそれを使用しています。長い間検討した結果です。作業員さん、現時点では swoole は面倒すぎます。運用環境は安定しています。結局のところ、ネイティブ PHP ツール swoole はしばらく使われていますが、落とし穴が多すぎます。
ネットユーザーのコメント 4:
私は Swoole の導入に 1 週間苦労しましたが、最終的には導入することができました。もう一度言いますが、まだ多くの手順がありますが、サードパーティのライブラリや拡張機能と格闘し続けなければならないとしても、それは忘れてください。 Gatewayworker は、XFTP ツールを直接使用してフォルダーをドラッグして起動するため、多くの心配を省きます。
私のような初心者の場合、クラスター、数千万の同時実行、コンテナーに関係なく、Gatewaywroker を選択します。
ネットユーザーの評価 5:
個人的には、swoole と workman はどちらも同時実行性の高い IO の問題を解決できると思いますが、どちらも 2 つのアイデアを使用しています。誰よりも優れている、劣っているということはありません。 C で PHP 拡張機能を作成して問題を解決するのはとても素晴らしいことのように思えますが、必ずしもそうではありません。 C で PHP 拡張機能を作成する場合、比較するのは PHP プログラマーではなく C プログラマーである必要があり、その場合、C 言語は PHP 言語よりも高度であり、誰もが C を使用して Web サイトを開発できます。 #新しいコースの推奨事項: 3:パフォーマンス ネットユーザーの評価 1: スウールがワーカーマンより優れている理由は、コメント者が一度も使用したことがないからです労働者である彼は、C が PHP よりも速いと一方的に信じているだけであり、そのプログラム フレームワークについても同じことが当てはまると考えています。 ただし、Workerman は PHP ファイルを 1 回ロードして解析するだけで、その後はメモリに常駐するため、ディスク IO とリクエストの初期化、実行環境の作成、字句解析、構文解析、オペコードのコンパイル、およびPHP でのリクエスト クロージングやその他多くの時間のかかるプロセス。したがって、純粋に言語レベルの比較から言えば、C とマシンコードの違いになるはずです。 どちらも非常に優れたオープンソース フレームワークです。c と php のどちらを好むかによって決まります。 ネットユーザーの評価 2: # ネットユーザーの評価 3: 実行スコアから、各指標の Workerman は Swoole よりわずかに高くなります。全体として、Swoole と Workerman の結果は似ていますが、これは単なる実行スコアです。実際の効果は依然として依存します。実際のプロジェクト。 ネットユーザーのコメント 4: 両方とも間違っていると思います。両方の側面を比較してください workman は PHP で書かれています。しかし、本質は、pcntl やその他の拡張機能を使用して関数を実装することです。 swoole は C/C で書かれていますが、実際には PHP 拡張機能の形式で表示されます。 つまり、実際にはPHP 拡張機能 # 実際に、pcntl や swoole 拡張機能などの拡張機能のパフォーマンスを比較します。 つまり、ワークマンが遅くないのは普通ではないでしょうか。 ネットユーザーの評価 5: https://www.techempower.com/benchmarks/#section=data-r19&hw=ph&test=db&l =zik073-1r これは、データベース ビジネスに関する権威ある外国ストレス テスト機関 www.techempower.com のストレス テストの 19 回目です。Swoole はデータベース接続プール コルーチンを使用し、workerman はオリジナルの PHP mysql です結論としては、依然として 2 つのパフォーマンスに大きな違いはありません。Workerman はすべてのパフォーマンス指標、特にプレーンテキストで優れており、swoole よりも約 35% 優れています。もちろん、これはストレス テストの結果にすぎず、部分的な参照のみの意味があり、実際のプロジェクトの最終結果を表すものではありません。 新コースお勧め: ネチズン評価 1: スマートホームなどのプロジェクトのニーズのため、当初はC を使用する予定です 実行してください。考えてください。Swoole と Workerman は非常に人気があり成熟しており、多くの安定したアプリケーション シナリオがあります。考えてみてください。なぜこれら 2 つを試してみることができないのでしょうか? C レベルには限界があります。どれだけうまくできるか?ニーズを満たすには PHP を使用する必要がありますか? Workerman によって使用される pcntl および posix 拡張機能も PHP 独自の拡張機能であり、デフォルトでコンパイルされます。一連の関数の streams は PHP 独自の関数であり、拡張機能はありません。つまり、誰かが言ったことは誇張されすぎています。未熟なサードパーティの拡張機能は必要ありません。これら 2 つの拡張機能は非常に成熟した拡張機能であり、PHP でデフォルトで有効にできるほど安定しています。ストリームは PHP の基本機能にも入ります。Nginx のように Kqueue と Epoll を有効にしたい場合は、次のものが必要ですswoole のようにインストールします。pecl 拡張子: pecl-event。この拡張子も非常に安定しています。これらは基本的な拡張子であり、不安定ではなく、PHP7 または PHP8 ではサポートされません。streams、pcntl、posix、および pecl-event実際には下層の浅いカプセル化ですので、性能的には問題ありませんが、使い方と使えるかどうかは使い方次第です。 最後に: 私は、スウールがより高いレベルである必要があるという Han Tianfeng の意見には同意しません。実際、両方ともパッケージ化されており、使用できます。は問題です。Workerman は、プロトコルを理解し、カプセル化された PHP コードを変更できます。Swoole はそれを変更できません。変更するには、少なくとも C 言語の知識が必要です。これは、多くの PHP 者が苦手なことです。 上記の理由から、そのような問題はWorkermanのPHPコードを自分で修正することで解決できるので、当面はworkermanを使うことにしましたが、swooleはCで再実装されています。改善すべき落とし穴が多く、コミュニティはアクティブではありません。誰も気にしません。原因を見つけるために C コードをチェックする気力もありません。多くの人も swoole を試してみましたが、workerman の方が安定していることがわかり、workerman に切り替えました。実際、私は、swoole が迅速に開発され、改善されることを今でも願っています。 実際には、これらはほとんど同じですが、swoole または Workerman を直接ベースにしている場合、開発は簡単ではありません。 Workerman のドキュメントは非常に優れており、多くの例が含まれています。Workerman の方が使い始めるのが簡単だと思います。 swoole は非常に安定しています。 公式ソリューション fpm opcache jit long connection、または workerman、老犬のように安定しており、公式のソリューションで、自分で簡単に問題を解決できます。 workerman は、PHP の精神によりよく一致しています。Workerman ユーザーとして 1 年以上、私はこう感じています。ワーカーマンをしっかりサポートします。また、作業員はとても真面目で、フォーラムでの初心者の質問にもタイムリーに答えてくれて、初心者に対して非常に親切です。 1. ThinkPHP バージョン PHP Workerman の基礎と実践的な戦闘:インスタントコミュニケーションチャットシステム >> (最新オンライン 2022.11.30) (元の価格 ¥399 元、新規割引価格 189 元、8 日間限定 ) https://www.php.cn/course/ 1475. html (通常価格¥299元、期間限定割引価格¥139元、8日間限定 ) https://www.php.cn/course/1131.html )
オープニングアドレス↓↓↓
##2. Laravel バージョン: 《
オープンアドレス↓↓↓
(
上記の PHPer の見解に同意しますか?専門家がスプレーすることを歓迎します!