ホームページ >バックエンド開発 >PHPチュートリアル >PHP7 の最高のパフォーマンスを達成するためのいくつかのヒント

PHP7 の最高のパフォーマンスを達成するためのいくつかのヒント

WBOY
WBOYオリジナル
2016-06-20 12:43:17846ブラウズ

原文 http://www.laruence.com/2015/12/04/3086.html

PHP7 は、過去 10 年間で最大の PHP のバージョンアップとパフォーマンスの向上として、複数のテストで明らかなパフォーマンスの向上を示しましたが、そのパフォーマンスを最大限に高めるために、まだいくつか改善したい点があります。

PHP7 VS PHP5.6

1. Opcache

Opcache であっても PHP7 の方が高速であるため、忘れずに有効にしてください。また、Opcache を有効にすると PHP-5.6 よりも高速になるため、前回のテスト期間中に Opcache を有効にするのは非常に簡単で、php に

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

2 を追加するだけです。 .ini 構成ファイルを使用します。新しいコンパイラを使用します。

新しいコンパイラを使用します。GCC 4.8 以降の PHP のみが opline およびexecute_data のサポートを有効にし、5 を実現するためです。 % パフォーマンスの向上 (Wordpres の QPS 観点からの測定)

実際には、GCC 4.8 より前のバージョンでもサポートされていますが、サポートにバグがあることが判明したため、この機能はバージョン 4.8 以降で有効にする必要があります。

3. HugePage

以前の記事でも紹介しました: Hugepage を使用して PHP7 を高速化するには、まずシステムで HugePages を有効にし、次に Opcache の huge_code_pages を有効にします。私の CentOS 6.5 たとえば、次のように渡します:

512 の予約された巨大なページ メモリを割り当てます:
$sudo sysctl vm.nr_hugepages=512

$ cat /proc/meminfo  | grep HugeAnonHugePages:    106496 kBHugePages_Total:     512HugePages_Free:      504HugePages_Rsvd:       27HugePages_Surp:        0Hugepagesize:       2048 kB

次に、php.ini を追加します:

このように、PHP は大きなメモリ ページを使用して独自のテキスト セグメントと大量のメモリ割り当てを保存し、TLB ミスを減らし、パフォーマンスを向上させます。
opcache.huge_code_pages=1

4. Opcache ファイル キャッシュを有効にする (実験的)。これを有効にすると、Opcache が外部ファイルにオペコード キャッシュをキャッシュできるようになり、php.ini に次の内容を追加します。

この方法では、PHP は一部の Opcode バイナリ エクスポート ファイルを /tmp ディレクトリにキャッシュします。これらのファイルは PHP ライフサイクル全体にわたって存在できます。

前回の記事: PHP7 を高速化します。 (GCC PGO) また、PHP が WordPress や Drupal などの 1 つのプロジェクト専用である場合、PHP を改善するために、特にプロジェクトのパフォーマンスを向上させるために PGO を試すことができると紹介しました。 🎜>
opcache.file_cache=/tmp
具体的には、最適化シナリオとして WordPress 4.1 を使用します。まず、PHP をコンパイルするとき:

次に、プロジェクトを使用して、たとえば WordPress の場合に PHP をトレーニングします:

つまり、php-cgi で WordPress ホームページを 100 回実行して、その過程でプロファイル情報を生成します。

最後に、
$ make prof-gen

この時点でコンパイルする PHP7 は次のとおりです。あなたのプロジェクトに合わせた最高のパフォーマンスのコンパイル済みバージョンです。
$ sapi/cgi/php-cgi -T 100 /home/huixinchen/local/www/htdocs/wordpress/index.php >/dev/null

今のところはここまでです。後で思いついたときに追加します。皆さんもぜひ試してみてください。ありがとうございます。

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

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