ホームページ  >  記事  >  バックエンド開発  >  php7 パフォーマンス最適化に関する 5 つのヒントのまとめ

php7 パフォーマンス最適化に関する 5 つのヒントのまとめ

伊谢尔伦
伊谢尔伦オリジナル
2017-06-27 10:01:222041ブラウズ

PHP7 は、過去 10 年間で最大のバージョンアップおよび最大のパフォーマンスアップグレードとしてリリースされ、複数のテストで明らかなパフォーマンスの向上を示しましたが、最大限のパフォーマンスを発揮するにはまだいくつかの課題があります。

1. Opcache

Opcache が有効になっていない場合でも、PHP7 は PHP-5.6 よりも高速なので、前回のテスト期間中に発生したことを忘れないでください。 Opcache を有効にしたことがない人は、次を追加するだけです:

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

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

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

3. HugePage

私の以前の記事でも紹介しました: Hugepage を使用して PHP7 を高速化し、まずシステムで HugePages を有効にしてください。次に、Opcache の huge_code_pages を有効にします。

私の CentOS 6.5 を例として、パス:

$sudo sysctl vm.nr_hugepages=512

512 の予約された巨大なページ メモリを割り当てます:

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

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

 opcache.huge_code_pages=1

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

4. Opcache

file

キャッシュ

Opcache ファイル キャッシュを有効にする (実験的)。これにより、Opcache がオペコードキャッシュを外部ファイルにキャッシュできるようになり、一部のスクリプトではパフォーマンスが大幅に向上します。php.ini に追加:

opcache.file_cache=/tmp

このようにして、PHP は一部のオペコード バイナリ エクスポートをキャッシュします。 /tmp ディレクトリ内のファイルは、PHPライフ サイクル全体に存在できます。

5. PGO

私の以前の記事: PHP 7 を高速化する (GCC PGO) では、PHP が 1 つのプロジェクト専用である場合についても紹介しました。 WordPress や Drupal などの場合は、PGO を使用してプロジェクトに合わせて PHP を改善してみてください。 具体的には、PHP をコンパイルするときに最初に WordPress 4.1 を使用します。

$ make prof-gen
次に、プロジェクトを使用して、たとえば WordPress 用に PHP をトレーニングします。
$ sapi/cgi/php-cgi -T 100 /home/huixinchen/local/www/htdocs/wordpress/index.php >/dev/null

つまり、php-cgi を 100 実行します。 WordPress ホームページを参照して、プロセス内でいくつかのプロファイル情報を生成します。

最後に:

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

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

以上がphp7 パフォーマンス最適化に関する 5 つのヒントのまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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