目次
パフォーマンス テスト
結果の説明
テストを開始
コントローラーを追加し、コントローラーで HelloWorld を 10,000 回入力します
同時 50 ループを 10 回
同時実行 200 ループ 10 回
予想外に最適化なしでは ThinkPHP が最速、Yii はわずかに速くなり、Laravel はたどたどしいペースでテストを終了しました。結果はやや予想外ですが、上記のテストは開発環境のみを表しています。フレームワークはオンライン環境をシミュレートするために以下で最適化されます。
最適化フレームワーク
奇妙なことに、フレームワークがデバッグ モードをオフにすると、失敗もたくさんありました。ただし、単純な最適化の後、Laravel のパフォーマンスは大幅に向上していることは明らかですが、それでも他の 2 つのフレームワークよりも低いです。
結論
最後に、私のプロジェクトはセルフを使用して開発されました。 Composer のおかげで、開発プロセスは非常にスムーズに進みました。最終的に、200 の同時実行と 10 サイクルで実行される独自のフレームワークのデータが添付されました。このフレームワークはオープンソースですが、更新は大歓迎です。 github で PPPHP を検索して、一緒にフレームワークを構築してください。
支払い方法を選択してください
ホームページ バックエンド開発 PHPチュートリアル 3 つの主流 PHP フレームワークのパフォーマンス テスト

3 つの主流 PHP フレームワークのパフォーマンス テスト

Jun 20, 2016 pm 12:29 PM

主流の PHP フレームワークのパフォーマンスに関する非権威テスト

PHP 開発者およびスタートアップ チームの技術開発者として、開発フレームワークの選択は重要です。とても難しいこと。

ThinkPHP では、訓練機関を卒業したばかりの開発者を採用することで始めることができますが、ポストコードからパフォーマンスを切り離すのは頭の痛い問題です。ただし、多くの専門家がすでに道を切り開いているため、サードパーティ関数の多くは自分で記述する必要はありません。

Laravel は非常に書きやすく、十分な拡張性があると言われていますが、学習コストが少し高く、若手開発者がフレームワークを学ぶのに半月も与えることはできません。さらに、Laravel のパフォーマンスはあまり良くなく、ドキュメントもそれほど充実していないことが業界関係者によって明らかにされていると言われています。

Yiiは構文が少し面倒で、フロントエンドとバックエンドのコードを分けるのが少し面倒ですが、パフォーマンスが非常に良く、すでに多くの国内大手企業で利用されています。何か予期せぬことが起こった場合、混乱した質問に答えてくれる専門家をすぐに見つけることができます。

簡単なパフォーマンス評価を行うことをお勧めします。優れたパフォーマンスのものを選択すると間違いはありません

パフォーマンス テスト

テスト時間: 2016 年 5 月 6 日

テストツール: siege (MAC システムの ab ではエラー pr_socket_recv: Connection reverse bypeer (54) が常に発生するため、siege を選択しました)

テストマシン: MacPro Core i5 プロセッサ/8GB メモリ/256GB SSD フラッシュメモリ

テスト環境: Apache PHP5.6

フレームワークバージョン: ThinkPHP 3.2.3 Laravel 5.2 Yii2.0.5

テスト原理: 各テストは 5 回ループします、中データを取る

補足: すべてのプロジェクトはサブディレクトリに配置されます

結果の説明

Transactions:               2119 hits  处理请求总数量Availability:              96.85 %  可用性Elapsed time:               9.74 secs  运行时间Data transferred:           1.31 MB 数据传输量Response time:              0.60 secs 响应时间Transaction rate:         217.56 trans/sec 每秒处理效率Throughput:             0.13 MB/sec 每秒处理数据Concurrency:              130.28 并发Successful transactions:        2162 成功的请求Failed transactions:              69 失败的请求Longest transaction:            2.85 最长的单个请求Shortest transaction:           0.01 最短的单个请求
ログイン後にコピー

テストを開始

コントローラーを追加し、コントローラーで HelloWorld を 10,000 回入力します

同時 50 ループを 10 回

最初に来ました 来たのはThinkPHP は大丈夫そうに見えました

Transactions:                500 hitsAvailability:             100.00 %Elapsed time:               2.81 secsData transferred:          52.45 MBResponse time:              0.26 secsTransaction rate:         177.94 trans/secThroughput:            18.67 MB/secConcurrency:               47.10Successful transactions:         500Failed transactions:               0Longest transaction:            0.48Shortest transaction:           0.03
ログイン後にコピー

次に Laravle が来ました、まあ、少しがっかりしました

Transactions:                500 hitsAvailability:             100.00 %Elapsed time:              13.33 secsData transferred:          52.45 MBResponse time:              1.27 secsTransaction rate:          37.51 trans/secThroughput:             3.93 MB/secConcurrency:               47.55Successful transactions:         500Failed transactions:               0Longest transaction:            3.64Shortest transaction:           0.07
ログイン後にコピー

最後のゲーム Yii

Transactions:                500 hitsAvailability:             100.00 %Elapsed time:               4.84 secsData transferred:          52.45 MBResponse time:              0.46 secsTransaction rate:         103.31 trans/secThroughput:            10.84 MB/secConcurrency:               47.65Successful transactions:         500Failed transactions:               0Longest transaction:            0.88Shortest transaction:           0.04
ログイン後にコピー

同時実行 200 ループ 10 回

最初は ThinkPHP

Transactions:               1977 hitsAvailability:              98.85 %Elapsed time:              10.03 secsData transferred:         207.40 MBResponse time:              0.95 secsTransaction rate:         197.11 trans/secThroughput:            20.68 MB/secConcurrency:              187.68Successful transactions:        1977Failed transactions:              23Longest transaction:            1.22Shortest transaction:           0.02
ログイン後にコピー

次にLaravel

Transactions:               1890 hitsAvailability:              94.50 %Elapsed time:              51.85 secsData transferred:         198.27 MBResponse time:              4.88 secsTransaction rate:          36.45 trans/secThroughput:             3.82 MB/secConcurrency:              178.00Successful transactions:        1890Failed transactions:             110Longest transaction:           26.01Shortest transaction:           0.07
ログイン後にコピー

ついに Yii

Transactions:               1996 hitsAvailability:              99.80 %Elapsed time:              18.95 secsData transferred:         209.39 MBResponse time:              1.79 secsTransaction rate:         105.33 trans/secThroughput:            11.05 MB/secConcurrency:              188.57Successful transactions:        1996Failed transactions:               4Longest transaction:            3.29Shortest transaction:           0.10
ログイン後にコピー

予想外に最適化なしでは ThinkPHP が最速、Yii はわずかに速くなり、Laravel はたどたどしいペースでテストを終了しました。結果はやや予想外ですが、上記のテストは開発環境のみを表しています。フレームワークはオンライン環境をシミュレートするために以下で最適化されます。

最適化フレームワーク

ThinkPHP:

APP_DEBUG改为false
ログイン後にコピー

Laravel:

APP_DEBUG改为falsephp artisan route:cachephp artisan optimizephp artisan config:cachecomposer dumpautoload -o
ログイン後にコピー

Yii:

YII_DEBUG改为falsecomposer dumpautoload -o
ログイン後にコピー

同時実行 200 ループ 10 回

ThinkPHP

Transactions:               1655 hitsAvailability:              82.75 %Elapsed time:               8.21 secsData transferred:         173.62 MBResponse time:              0.69 secsTransaction rate:         201.58 trans/secThroughput:            21.15 MB/secConcurrency:              139.29Successful transactions:        1655Failed transactions:             345Longest transaction:            7.83Shortest transaction:           0.00
ログイン後にコピー

Laravel:

Transactions:               1520 hitsAvailability:              76.00 %Elapsed time:              34.95 secsData transferred:         159.45 MBResponse time:              3.15 secsTransaction rate:          43.49 trans/secThroughput:             4.56 MB/secConcurrency:              136.84Successful transactions:        1520Failed transactions:             480Longest transaction:           19.18Shortest transaction:           0.00
ログイン後にコピー

Yii:

Transactions:               1704 hitsAvailability:              85.20 %Elapsed time:              15.16 secsData transferred:         178.76 MBResponse time:              1.46 secsTransaction rate:         112.40 trans/secThroughput:            11.79 MB/secConcurrency:              164.21Successful transactions:        1704Failed transactions:             296Longest transaction:            9.04Shortest transaction:           0.00
ログイン後にコピー

奇妙なことに、フレームワークがデバッグ モードをオフにすると、失敗もたくさんありました。ただし、単純な最適化の後、Laravel のパフォーマンスは大幅に向上していることは明らかですが、それでも他の 2 つのフレームワークよりも低いです。

結論

テスト中、私は落ち込んで、自分の世界観が崩壊し、崩壊寸前まで落ち込んだように感じました。

ThinkPHP のパフォーマンスは Yii の 2 倍、Yii のパフォーマンスは比較的平均的ですが、他の 2 つのフレームワークよりもリクエストの失敗が少ないことは明らかです。エレガントですが、パフォーマンスは心配です。ネチズンの言葉を借りれば、ライブで学習することに熱心な人々とそれを使用する人々は死にます

最後に、私のプロジェクトはセルフを使用して開発されました。 Composer のおかげで、開発プロセスは非常にスムーズに進みました。最終的に、200 の同時実行と 10 サイクルで実行される独自のフレームワークのデータが添付されました。このフレームワークはオープンソースですが、更新は大歓迎です。 github で PPPHP を検索して、一緒にフレームワークを構築してください。

Transactions:               1672 hitsAvailability:              83.60 %Elapsed time:               6.18 secsData transferred:         175.40 MBResponse time:              0.57 secsTransaction rate:         270.55 trans/secThroughput:            28.38 MB/secConcurrency:              153.16Successful transactions:        1672Failed transactions:             328Longest transaction:            4.57Shortest transaction:           0.01
ログイン後にコピー

著者がより良い記事を書くためのヒントを提供します。ありがとうございます!

著者に報酬を与える

著者がより良い記事を書けるようにサポートするためのヒント、ありがとう!

支払い方法を選択してください

著者について: Li Hutou

11Space で働いていました。 PHP アーキテクト、PPPHP フレームワーク作者の個人ホームページ · 私の記事 · 1 ·

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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でフラッシュセッションデータを使用します Laravelでフラッシュセッションデータを使用します Mar 12, 2025 pm 05:08 PM

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPのカール:REST APIでPHPカール拡張機能を使用する方法 PHPのカール:REST APIでPHPカール拡張機能を使用する方法 Mar 14, 2025 am 11:42 AM

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelテストでの簡略化されたHTTP応答のモッキング Laravelテストでの簡略化されたHTTP応答のモッキング Mar 12, 2025 pm 05:09 PM

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

Codecanyonで12の最高のPHPチャットスクリプト Codecanyonで12の最高のPHPチャットスクリプト Mar 13, 2025 pm 12:08 PM

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

PHPにおける後期静的結合の概念を説明します。 PHPにおける後期静的結合の概念を説明します。 Mar 21, 2025 pm 01:33 PM

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 Mar 28, 2025 pm 05:12 PM

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

フレームワークセキュリティ機能:脆弱性から保護します。 フレームワークセキュリティ機能:脆弱性から保護します。 Mar 28, 2025 pm 05:11 PM

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

See all articles