PHP 7対PHP 5.6 - LAravel 5とパフォーマンスのベンチマーク

Laravel は急速にPHPプロジェクトための一般的な選択肢になりつつあります。フレームワークは、バージョン5.xリリース後にその名声を確立しています同じ静脈では、PHPは最近、PHP 7.1.x.形でメジャーアップデートを受信しました

![image.png](https://qiita-image-store.s3.amazonaws.com/0/213119/fa90827f-2686-69f1-0661-d1ca33b058f7.png)

ララヴェルは、固体コードベースを持っており、すべての軽量、エンタープライズレベルのアプリケーション向けに最適化されたパフォーマンスを提供するという確立された事実です。しかしラほつれ5つのベンチマークとPHP5.6とPHP7とその性能について統計は、広く利用できません。

最近、テイラー・オーウェル、クラウドの方法とのインタビューで、ラ・ラヴェルアプリケーション開発I次単語の汎用性を言及しました。

**"ララヴェルは非常に近代的なフレームワークです。ジョブキューイングは、ボックスの外に含まれています。Socket.ioやプッシャーなどのWebソケット/リアルタイムツールとの統合は、ボックスの外に含まれています。また、自動配線依存性注入と便利ユニットテストため非常に強力なサポートがあります。だから、私はあなたが現代的な、強力なWebアプリケーションを構築する場合、ララヴェルが、それは近代的な、保守性、リアルタイム、分散型Webアプリケーションを構築するために必要な機能を備えていますという理由だけでPHP生態系における最強の候補だと思います。また、ララはキャストで900以上のチュートリアルの大規模なビデオライブラリを持っています"**

私はクラウド方法両方PHP5.6と7.0のララヴェルのパフォーマンスをテストすることによって、こ主張をテストすることを決め on **[Cloudways](https://www.cloudways.com/en/php-cloud-hosting.php)**。それはすべてそれが行った方法です：

##テストシナリオ

私は、こテストのためブリッツ・ツールを使用していました。
テストシナリオは、二つのケースに分けられます。
最初のケースは以下のとおりです。
•	Laravel 5.4デモアプリケーション
•	Cloudways は、デジタルオーシャンサーバーを管理：8ギガバイト
•	PHP 5.6
•	いいえキャッシュライブラリません
•       試験時間：5分
•	ユーザーの番号：250

今、後者の場合には、私はPHP7.0にサーバーをアップグレードしました。残りのパラメータは同じまま：
•	ラほつれ5.4デモアプリケーション
•	クラウドの方法は、デジタルオーシャンサーバーを管理：8ギガバイト
•	PHP 7.0
•	試験時間：5分
•	ユーザーの番号：250

テストを開始するには、私はクラウドの方法に署名し、ロンドンデータセンターからラのほつれアプリケーションとPHPスタックを開始しました。私はデフォルトにすべての設定を残しました。統計より多くの明快さを確保するために、私は、サーバー上のニスやRedisのよう任意キャッシュオプションをオンにしませんでした。

##PHP 5.6のためのラ・ラヴェルベンチマーク

このテストは、blitz.ioを用いて行きました。テストは5分間連続して走りました。あなたはここでデモラ・ラヴェルアプリケーションGitのハブレポを見つけることができます。

ここではテストの結果は以下のとおりです:

##応答時間
![image.png](https://qiita-image-store.s3.amazonaws.com/0/213119/982a9bb1-ab6a-c5d9-9c59-e0a6d3842bba.png)

グラフはかなり自明です。50人のユーザー以下では、サーバが十分に速く、すなわち500ミリ秒を答えました。ユーザー数が増加するにつれて、応答時間も増加しました。246人のユーザーがサーバー上に存在していたときに私はここに来た最大応答時間は、1631ミリ秒です

##ヒット率
![image.png](https://qiita-image-store.s3.amazonaws.com/0/213119/94c364aa-e07e-917b-2e7d-6d82561f8a3b.png)

サーバーは50人のユーザーのために約25ヒット/秒を見ました。ユーザーが250に増加しかし、ヒット率は、毎秒100以上に上昇しました。私は、1人または2つのユーザーため試験第2.5分で少しタイムアウトを見ました。ただし、サーバー自体を安定化し、ヒットを処理するために続けました。私は、プロセス中に（アウト時間を含む）任意のより多くのエラーが表示されませんでした。
300秒スパンでは、サーバは、サーバの過負荷いずれか 目に見える兆候なしで22375本ヒットを取り扱い、すべての要求が成功しました。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/213119/565f7235-d1c2-ac4b-b13b-911ec062a3c7.png)

##完全な分析

試験中、電撃ツールは、300秒で正常に22375本のヒットを生成しました。また、ララヴェルアプリは、データの427.91メガバイトを受けました。75/の平均ヒット率は、二日目あたり約6444000ヒットに翻訳します。ここにテストの要約された画像があります：

![image.png](https://qiita-image-store.s3.amazonaws.com/0/213119/85d6b384-d057-ca7f-a1ce-4933a3ad4dc3.png)

##Laravel Benchmarking for PHP 7.0

テスト後半では、私はPHP7.0に私の管理デジタル海のサーバーをアップグレードしました。クラウド方法は、あなたがオプションからPHP5.6または7.0を選択することができますサーバーの管理]タブ内PHPパッケージの更新オプションを持っています。

サーバーが更新された後は、私は同じラのほつれアプリケーションをサーバー上で再び電撃テストを実行しました。

私が得た結果を見てみましょう:

##応答時間

![image.png](https://qiita-image-store.s3.amazonaws.com/0/213119/7c2aef9d-f0fa-1adf-ebfc-75e1ae38b5a9.png)

今回は、私は、サーバーの応答時間が大幅に向上しました。200人のユーザーの下には、サーバは300ミリ秒以内に答えました。ユーザー数は約240+に増加すると、平均応答時間は約3.5秒でした。この時点で、私はララヴェルを持つ2つPHPのバージョンとの間に有意な違いが見られました。

##ヒット率

![image.png](https://qiita-image-store.s3.amazonaws.com/0/213119/c8cafeed-7db2-051e-27ae-a9a4b3478152.png)

私も同様のヒット率の向上が見られました。PHP5.6と比較すると、数字は50本の+追加のヒットで大幅に増加しました。でも、この負荷で、サーバがエラーやタイムアウトが表示されませんでした。

300秒スパンでは、サーバーは問題なく29214本のヒットを取り扱います。 また、最大のヒット率も56本以上のヒット/秒で増加しました。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/213119/b2d47cd1-7ac6-740d-4860-372d75ab9b9c.png)

##完全な分析

試験中、電撃ツールは、300秒で正常に29214本のヒットを生成しました。ララヴェルアプリは、データの420.31メガバイトを受けました。97/秒の平均ヒット率は約8413632日あたりに変換されます。ここでは、テストのまとめの画像です：

![image.png](https://qiita-image-store.s3.amazonaws.com/0/213119/56915f30-d577-80cd-5aa0-c2a9b4d0e9c1.png)

##勝者

The test generated the following statistics

![image.png](https://qiita-image-store.s3.amazonaws.com/0/213119/8093e6c8-be8b-6ab3-af79-b24cbe44e7f1.png)

Cloudwaysはまた、ほとんどのプロバイダにとって **[Datacenter in Japan](https://www.cloudways.com/en/japan-cloud-hosting.php)**  を提供しています。 だから、あなたは日本を選択して、わずかなクリックだけで次のlaravelアプリケーションを立ち上げることができます。