ホームページ  >  記事  >  バックエンド開発  >  php7 の使用エクスペリエンスをグラフィックとテキストで詳細に説明: 大幅に向上したパフォーマンス、強力な互換性、不十分な拡張機能サポート

php7 の使用エクスペリエンスをグラフィックとテキストで詳細に説明: 大幅に向上したパフォーマンス、強力な互換性、不十分な拡張機能サポート

黄舟
黄舟オリジナル
2017-07-27 14:55:101717ブラウズ

この記事は、PHP 7 のインストールと使用体験のパフォーマンスの向上、強力な互換性、不十分な拡張サポートを主に紹介します (PHP をアップグレードする場合は注意してください)。必要な友人は参考にすることができます。 PHP について PHP 7 のリリースにより、最近では PHP 7 のパフォーマンスと互換性が大きな話題になっており、多くの人々が PHP 7 のパフォーマンスの高さからすでに PHP を導入しています。 7 実稼働環境へ。同時に、LNMP などの人気アプリケーションもタイムリーにアップデートされ、PHP 7 のサポートが開始されています。

PHP のパフォーマンスの問題に関して言えば、以前に共有した HHVM について言及する必要があります。これは、PHP のパフォーマンスを向上させるために Facebook によって開発されたツールで、PHP コードを特定の形式に変換します。セクションコード。実際のテスト プロセス中、HHVM は PHP のパフォーマンスを向上させる上での質的な飛躍をもたらしました。効率的な PHP 実行環境により、PHP のパフォーマンスは 9 倍以上向上しました。

近年、PHP はパフォーマンスのボトルネックとして広く批判されており、HHVM の完璧なパフォーマンスは PHP の開発にとって非常に有害です。 PHP 7 は、PHP コミュニティによる HHVM への対応であり、PHP 7 の正式リリース バージョンでは、PHP のパフォーマンスが大幅に向上しています。実際のテストでは、PHP 7 のパフォーマンスが HHVM のパフォーマンスを上回る場合があります。

この記事では、PHP 7 のインストールと使用体験をお届けします。PHP 7 のパフォーマンスを熱心に体験したい友人は、PHP 7 を正式にアップグレードする前に、さらにいくつかのプログラムの互換性テストを行うのが最善です、と公式は述べています。は下位互換性は 99% ですが、念のため実稼働環境に適用する場合は注意が必要です。

PHP 7 のインストールと使用エクスペリエンス: 大幅に向上したパフォーマンス、強力な互換性、不十分な拡張サポート。PHP をアップグレードするときは注意してください

PHP 7 と比較して、PHP 7 の高いパフォーマンスを活用するためのいくつかの重要なポイント。以前の PHP PHP 7 の性能は質的に飛躍したと言えますが、「良い馬には良い鞍があり、良い車には帆が付いている」という諺があるように、 PHP 7 のパフォーマンス上の利点を活用するには、次の点で準備する必要があります: (このセクションは、PHP7 のコア開発者であり、Yaf、Yar、Yac およびその他のプロジェクトの作者である Laruence の言葉を引用しています)。

1. Zend Opcache を有効にすることは非常に簡単です:

zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=1"

2. 新しいコンパイラーを使用するには、GCC 4.8 以降のみが使用できるため、それを使用することをお勧めします。 opline およびexecute_data のグローバル レジスタのサポートは PHP 7 でのみ有効になり、パフォーマンスが 5% 向上します。

3. HugePage を有効にすると、PHP 7 が高速になります。まず、システムで HugePages を有効にしてから、CentOS 6.5 の huge_code_pages を有効にします。 $sudo sysctl vm.nr_hugepages=512, assign 512 予約された巨大なページ メモリ:


$ cat /proc/meminfo | grep Huge
AnonHugePages:  106496 kB
HugePages_Total:   512
HugePages_Free:   504
HugePages_Rsvd:    27
HugePages_Surp:    0
Hugepagesize:    2048 kB

次に、opcache.huge_code_pages=1 を php.ini に追加します。このようにして、PHP は独自のテキスト セグメントに大きなメモリ ページを使用し、メモリ割り当てを削減します。 TLB がミスするため、パフォーマンスが向上します。

4. Opcache ファイル キャッシュをオンにする (実験的)。これをオンにすると、一部のスクリプトでは、Opcache が外部ファイルにキャッシュすることができ、明らかにパフォーマンスが向上します。方法は、opcache.file_cache=/tmp を php.ini に追加することです。このようにして、PHP は一部の Opcode バイナリ エクスポート ファイルを /tmp ディレクトリにキャッシュします。これは、PHP のライフサイクル全体にわたって存在する可能性があります。 PHP が WordPress や Drupal などのプロジェクトに特化して設計されている場合は、PGO を使用して PHP を改善し、特にプロジェクトのパフォーマンスを向上させることができます。具体的には、WordPress 4.1 を最適化シナリオとして取り上げます。まず、PHP をコンパイルするときに次のようにします。 $ make prof-gen.

6. 次に、プロジェクトを使用して PHP をトレーニングします (たとえば、WordPress の場合):$ sapi/cgi/php-cgi -T 100 /home/huixinchen/local/www/htdocs/wordpress/index.php >/dev/ null、つまり、php-cgi に WordPress ホームページを 100 回実行させ、その過程でプロファイル情報を生成します。最後に:


$ make prof-clean
$ make prof-use && make install

7. この時点でコンパイルする PHP7 は、プロジェクトに合わせて調整された最高パフォーマンスのコンパイル済みバージョンです。

2. PHP 7 のインストールとコンパイル


1. PHP 7 公式 Web サイト:

2. 強力な実践スキルを持つ友人は、公式 Web サイトから PHP 7 を直接ダウンロードし、手動で編集してインストールできます。それ。 lnmp.org Web マスターの LNMP ワンクリック インストール パッケージの使用に慣れている場合は、php7 サポートが追加された LNMP 1.3 ベータ バージョンのリリースを試すことができます。これは、Web サイトを LNMP または LAMP Web サイト構築にスムーズに移行するための方法です。環境。

3. OneinStack が提供する LNMP インストール パッケージには、すでに PHP 7 のワンクリック インストールが含まれています。スクリプトを実行するときに、PHP 7 のインストールを選択できるのは、現在インストールできる公式の Zend Opcache 拡張機能のみです。

4. OneinStack は PHP 7 を正常にインストールしました。

5. PHP 7の情報表示です。

6. これは、OneinStack が提供する PHP 7 用の Opcache コントロール パネルです。

3. PHP 7 と古いバージョンの PHP および HHVM のパフォーマンス比較

1。これは、WordPress や Drupal などの人気のあるプログラムで海外の開発者によってテストされた PHP 7 と PHP 5.6 のパフォーマンスです。 PHP 7 のパフォーマンスが大幅に向上していることは明らかです。

2. WordPress などのプログラムの場合、PHP 7 は個々の実行速度を向上させるだけでなく、PHP 7 で WordPress を長時間実行するほどパフォーマンスも向上します。

3. 前述したように、PHP 7 の PHP のパフォーマンス向上は、いくつかの点で HHVM を上回っています。これは、外国の zend.com 公式 Web サイトによる、さまざまなプログラムでの PHP 5.6、PHP 7、および HHVM のパフォーマンス向上です。 . 実行効率の比較結果。

4. プロフェッショナルなオープンソース電子商取引システム Magento での PHP 5.6、PHP 7、および HHVM の実行効率をテストします。PHP 7 は PHP 5.6 の 2 倍高速で、メモリ使用量は PHP 5.6 より 30% 低くなります。

5. Drupal 8 でテストされた PHP 7 の効率は、HHVM を超えて最速です。

6. WordPress のテスト中に、PHP 5.6 の実行には 100MB のメモリが必要であるのに対し、PHP 7 では 25MB しか必要ないことが判明しました。

7. さまざまなプログラムの実行速度という点では、PHP 7 は明らかに PHP 7 よりも優れています。

4. PHP 7のパフォーマンステスト結果レポート

1. 証拠はありませんが、PHP 7の実行プログラムのパフォーマンスはどのくらいですか?ここで、部族はテスト オブジェクトとして新しい WordPress を使用しています。PHP 7 で実行した WordPress ホームページの読み込み時間テストでは 0.029 秒、メモリは 3.39 MB でした。

2. これは、PHP 5.6 を実行している同じ WordPress ページのページ読み込み時間: 1.955 秒、占有メモリは 3.92MB です。データの観点から見ると、PHP 7 は PHP 5.6 を完全に破りました。

3. WordPress を実行する PHP 7 の効率は、以前のバージョンと比較して実際に向上しました。PHP 7 のパフォーマンスを完全に理解するために、ここでは Webbench を使用して、Web サイトサーバーの方法に従って 10 秒間のシミュレーションを行います。圧力 Web パフォーマンス テスト。接続数が 200 および 400 の場合、速度は 8000 ページ/分を超えます。

4. この時点で、VPSサーバーのシステム負荷は3.49です。

5. シミュレートされた接続の数を 1600 に増やしても、速度は 8000 ページ/分を超えます。

6. 現時点では、VPS サーバーのシステム負荷は 17 なので、少し厳しいはずです。

7. シミュレートされた接続の数を 5000 に増やすと、速度は 4800 ページ/分になり、速度が低下し始めます。

8. 現時点で、VPS サーバーのシステム負荷は 23 で、サーバーは過負荷になっています。

9. この VPS ホストで PHP 7 の耐久性の制限をテストするために、Webbench は 20 秒間でサーバーに連続的にアクセスする 10,000 の接続をシミュレートしました。

10. この時点で、VPSサーバーのシステム負荷は90近くあり、限界に達しているはずですが、それでもサーバーはクラッシュしません。

11. 次に、同じ構成の VPS ホスト上で WordPress を実行した場合のストレス テストの結果を見てみましょう。最初に、Webbench を使用して 10 秒間で 200 接続と 400 ページの接続をシミュレートしました。 /分、これは比較的遅いです。上記の PHP 7 テストは半分の速度です。

12. これは、200 接続と 400 接続をテストした PHP 5.6 のシステム負荷であり、PHP 7 環境でテストされた 3.49 を明らかに超えています。

13. PHP 5.6 テストでは、シミュレートされた接続の数が 1000 と 2000 に増加しました。この時点で、速度は 1600 ページ/分に低下し、成功した接続の数も 2000 ページに減少しました。これは、PHP 7 でのテストよりもはるかに低い約 500 時間です。2700 時間。

14. 現時点で、システム負荷は 17 に達しています。

15. Webbench を使用して、PHP 5.6 での接続数を 10,000 までテストし、20 秒以内にサーバーに連続してアクセスします。この時点で、テストは結果が出ずに停止しています。

16. こちらのVPSサーバーのシステム負荷が1,000を超え、サーバーがクラッシュしました。

17. PHP 5.6 の WordPress ウェブサイトがダウンしました。

5. PHP 7 の互換性の問題

1. 現在、国内の Discuz などは PHP 7 をサポートしていません。その他の PHP 拡張機能には、公式の Opcache のみが使用できます。拡張サポート リストには常に注意を払うことができます:

2. テスト後、PHP 7 は問題なく WordPress を実行します。

3. PHP 7 に WordPress プラグインをインストールするのは問題ありません。

4. PHP 7 には一部の関数、演算子などに非互換性の問題がある可能性がありますが、99% のプログラムはこれらを使用しない可能性があります。

VI. PHP 7 のインストールと使用体験の概要

1. PHP 7 を使用して驚いたことは、HHVM は実機に依存しているため、海外の開発者によってテストされたように、PHP 7 のパフォーマンスは基本的に HHVM と同じであるということです。 -time (Just In Time) コンパイラは PHP コードを機械語命令にコンパイルするため、HHVM 上で実行する場合は多くの PHP プログラムを改善する必要があります。

2. PHP 7 は、HHVM の超高性能と PHP の下位互換性の利点を備えており、近い将来、より多くの人に認知され、受け入れられるようになると思います。現在、PHP 7 をサポートするキャッシュ、アクセラレーション、その他の拡張機能はそれほど多くありませんが、ますます多くの開発者が PHP 7 開発の仲間入りをするようになるのは時間の問題です。

以上がphp7 の使用エクスペリエンスをグラフィックとテキストで詳細に説明: 大幅に向上したパフォーマンス、強力な互換性、不十分な拡張機能サポートの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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