目次
なぜ Swoole で Laravel を実行するのか?
インストール
起動して実行する
ベンチマーク テスト
詳細情報
ホームページ PHPフレームワーク Swoole なぜSwooleでLaravelを実行するのでしょうか?

なぜSwooleでLaravelを実行するのでしょうか?

Apr 26, 2022 am 09:54 AM
laravel swoole

なぜ Swoole で Laravel を実行するのでしょうか? Swooleを使用するとLaravelアプリケーションを高速化できるためです。 Swoole での Laravel の使い方については次の記事で解説していますので、お役に立てれば幸いです。

なぜSwooleでLaravelを実行するのでしょうか?

#Swoole は、PHP 用に開発された実稼働グレードの非同期プログラミング フレームワークです。これは純粋に C で開発された拡張機能であり、PHP 開発者がノンブロッキング I/O プログラミングを行うことなく、高性能でスケーラブルな同時 TCP、UDP、Unix ソケット、HTTP、および WebSocket サービスを PHP で作成できるようになります。 -レベルの Linux カーネルの知識。 Swoole は NodeJS と考えることができますが、PHP の方がパフォーマンスが高くなります。 [推奨学習: swoole チュートリアル ]

なぜ Swoole で Laravel を実行するのか?

次の図は、PHP のライフサイクルを示しています。ご覧のとおり、PHP スクリプトを実行するたびに、PHP はモジュールを初期化し、ランタイム環境の Zend エンジンを起動する必要があります。そして、PHP スクリプトを Zend エンジン実行用の OpCode にコンパイルします。

ただし、このようなライフサイクルはリクエストが行われるたびに実行する必要があります。単一のリクエストによって作成された環境は、リクエストの実行が完了するとすぐに破棄されるためです。

言い換えれば、従来の PHP ライフサイクルでは、スクリプト実行のためのリソースの作成と破棄に多くの時間が無駄になります。 Laravel のようなフレームワークを想像してみてください。各リクエストでいくつのファイルをロードする必要があるでしょうか? 同時に、多くの I/O 操作が無駄になります

なぜSwooleでLaravelを実行するのでしょうか?

つまり、次のようにすると、アプリケーションレベルのサーバーを構築するには、すべてのスクリプトファイルを一度ロードした後にメモリに保存できますか?これが、Swoole 上で Laravel を実行してみる必要がある理由です。 Swoole は強力なパフォーマンスを提供し、Laravel はエレガントなコード構造の使用法を提供します。これら 2 つは本当に完璧な組み合わせです!

インストール

swooletw/laravel-swooleの主な機能は次のとおりです:

  • Swoole で Laravel/Lumen アプリケーションを実行
  • 優れたパフォーマンスが 30x
  • サンドボックス モード分離アプリケーション コンテナ
  • Laravel アプリケーションでの WebSocket サーバーの実行をサポート
  • サポート Socket.io プロトコル
  • Swoole テーブルのクロスプロセス共有のサポート

Composer を使用してインストール:

$ composer require swooletw/laravel-swoole
ログイン後にコピー

このパッケージアット・スウール次第。このパッケージを使用する前に、マシンに正しい Swoole がインストールされていることを確認してください。次のコマンドを使用して簡単にインストールします (Linux):

pecl install swoole
ログイン後にコピー

この拡張機能をインストールした後、php.ini を編集して extension=swoole.so を追加する必要があります。

php -i | grep php.ini                      # check the php.ini なぜSwooleでLaravelを実行するのでしょうか? location
sudo echo "extension=swoole.so" >> php.ini  # add the extension=swoole.so to the end of php.ini
php -m | grep swoole                       # check if the swoole extension has been enabled
ログイン後にコピー

詳細については、公式 Web サイトをご覧ください。

注: Swoole は現在、Linux と OSX のみをサポートしています。 Windows サーバーはまだサポートされていません。

次に、サービス プロバイダーを追加します:

Laravel を使用する場合は、config/app.php サービス プロバイダー配列にサービス プロバイダーを追加します:

[
    'providers' => [
        SwooleTW\Http\LaravelServiceProvider::class,
    ],
]
ログイン後にコピー

Lumen を使用する場合は、次のコードを bootstrap/app.php に追加してください:

$app->register(SwooleTW\Http\LumenServiceProvider::class);
ログイン後にコピー

このパッケージは、パッケージ自動検出メカニズムをサポートしています。 Laravel 5.5 以降を実行している場合は、この手順をスキップできます。

起動して実行する

これで、次のコマンドを実行して Swoole HTTP サービスを開始できます。

$ php artisan swoole:http start
ログイン後にコピー

次に、次の情報が表示されます。

Starting swoole http server...
Swoole http server started: <http://127.0.0.1:1215>
ログイン後にコピー

これで、http://127.0.0.1:1215 にアクセスして、Laravel アプリケーションに入ることができます。

ベンチマーク テスト

MacBook Air 13 インチ (2015 年製) とクリーンな Lumen 5.5 プロジェクト テストを使用:
ベンチマーク テスト ツール: wrk

wrk -t4 -c100 http://your.app
ログイン後にコピー

FPM に基づく Nginx

Running 10s test @ http://lumen.app:9999
  4 threads and 100 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     1.14s   191.03ms   1.40s    90.31%
    Req/Sec    22.65     10.65    50.00     65.31%
  815 requests in 10.07s, 223.65KB read
Requests/sec:     80.93
Transfer/sec:     22.21KB
ログイン後にコピー

Swoole HTTP サービス

Running 10s test @ http://127.0.0.1:1215
  4 threads and 100 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    11.58ms    4.74ms  68.73ms   81.63%
    Req/Sec     2.19k   357.43     2.90k    69.50%
  87879 requests in 10.08s, 15.67MB read
Requests/sec:   8717.00
Transfer/sec:      1.55MB
ログイン後にコピー

詳細情報

Github リポジトリで公式パッケージをご覧ください。詳細については、公式ドキュメントを参照することもできます。

英語のオリジナルアドレス: https://laravel-news.com/laravel-swoole?

[関連する推奨事項:

laravel ビデオチュートリアル]

以上がなぜSwooleでLaravelを実行するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Laravel と CodeIgniter の最新バージョンの比較 Laravel と CodeIgniter の最新バージョンの比較 Jun 05, 2024 pm 05:29 PM

Laravel 9 と CodeIgniter 4 の最新バージョンでは、更新された機能と改善が提供されます。 Laravel9はMVCアーキテクチャを採用しており、データベース移行、認証、テンプレートエンジンなどの機能を提供します。 CodeIgniter4 は、HMVC アーキテクチャを使用してルーティング、ORM、およびキャッシュを提供します。パフォーマンスの面では、Laravel9 のサービスプロバイダーベースの設計パターンと CodeIgniter4 の軽量フレームワークにより、優れたパフォーマンスが得られます。実際のアプリケーションでは、Laravel9 は柔軟性と強力な機能を必要とする複雑なプロジェクトに適しており、CodeIgniter4 は迅速な開発や小規模なアプリケーションに適しています。

Laravel と CodeIgniter ではどちらが初心者に優しいでしょうか? Laravel と CodeIgniter ではどちらが初心者に優しいでしょうか? Jun 05, 2024 pm 07:50 PM

初心者にとって、CodeIgniter は学習曲線が緩やかで機能は少ないですが、基本的なニーズはカバーしています。 Laravel は幅広い機能セットを提供しますが、学習曲線はわずかに急になります。パフォーマンスの点では、Laravel と CodeIgniter はどちらも良好なパフォーマンスを示します。 Laravel にはより広範なドキュメントとアクティブなコミュニティ サポートがあり、CodeIgniter はよりシンプルで軽量で、強力なセキュリティ機能を備えています。ブログアプリケーションを構築する実際のケースでは、Laravel の EloquentORM を使用するとデータ操作が簡素化されますが、CodeIgniter ではより手動の構成が必要になります。

Laravel と CodeIgniter: 大規模プロジェクトにはどちらのフレームワークが適していますか? Laravel と CodeIgniter: 大規模プロジェクトにはどちらのフレームワークが適していますか? Jun 04, 2024 am 09:09 AM

大規模プロジェクト用のフレームワークを選択する場合、Laravel と CodeIgniter にはそれぞれ独自の利点があります。 Laravel はエンタープライズレベルのアプリケーション向けに設計されており、モジュール設計、依存関係の注入、強力な機能セットを提供します。 CodeIgniter は、速度と使いやすさを重視した、小規模から中規模のプロジェクトに適した軽量フレームワークです。複雑な要件と多数のユーザーを伴う大規模なプロジェクトには、Laravel のパワーとスケーラビリティがより適しています。単純なプロジェクトやリソースが限られている状況では、CodeIgniter の軽量で迅速な開発機能がより理想的です。

Laravel - アーティザンコマンド Laravel - アーティザンコマンド Aug 27, 2024 am 10:51 AM

Laravel - アーティザン コマンド - Laravel 5.7 には、新しいコマンドを処理およびテストするための新しい方法が付属しています。これには職人コマンドをテストする新しい機能が含まれており、そのデモについては以下で説明します。

Laravel と CodeIgniter: 小規模プロジェクトにはどちらのフレームワークが適していますか? Laravel と CodeIgniter: 小規模プロジェクトにはどちらのフレームワークが適していますか? Jun 04, 2024 pm 05:29 PM

小規模なプロジェクトの場合、Laravel は強力な機能とセキュリティを必要とする大規模なプロジェクトに適しています。 CodeIgniter は、軽量さと使いやすさを必要とする非常に小規模なプロジェクトに適しています。

Laravel と CodeIgniter ではどちらのテンプレート エンジンが優れていますか? Laravel と CodeIgniter ではどちらのテンプレート エンジンが優れていますか? Jun 03, 2024 am 11:30 AM

Laravel の Blade と CodeIgniter の Twig テンプレート エンジンを比較し、プロジェクトのニーズと個人的な好みに基づいて選択してください。Blade は MVC 構文に基づいており、適切なコード編成とテンプレートの継承を促進します。 Twig は、柔軟な構文、強力なフィルター、拡張サポート、セキュリティ サンドボックスを提供するサードパーティ ライブラリです。

Laravel - アーティザン コンソール Laravel - アーティザン コンソール Aug 27, 2024 am 10:51 AM

Laravel - Artisan Console - Laravel フレームワークは、コマンドラインを介した対話のための 3 つの主要なツール、つまり Artisan、Ticker、REPL を提供します。この章ではArtisanについて詳しく説明します。

Laravel - ページネーションのカスタマイズ Laravel - ページネーションのカスタマイズ Aug 27, 2024 am 10:51 AM

Laravel - ページネーションのカスタマイズ - Laravel には、ユーザーまたは開発者がページネーション機能を組み込むのに役立つページネーションの機能が含まれています。 Laravel ページネーターは、クエリ ビルダーおよび Eloquent ORM と統合されています。自動ページネーションメソッド

See all articles