ホームページ  >  記事  >  バックエンド開発  >  PHP7 で Opcode を有効にして強力なパフォーマンスを生み出す方法 PHP スキルの詳細な説明

PHP7 で Opcode を有効にして強力なパフォーマンスを生み出す方法 PHP スキルの詳細な説明

jacklove
jackloveオリジナル
2018-06-25 17:03:271760ブラウズ

この記事では、PHP7 で Opcode を有効にして強力なパフォーマンスを実現する方法に関する関連情報を、サンプル コードを通じて詳細に紹介します。フォローする必要があります 編集者と一緒に学びましょう

序文

ニアオ兄弟は、パフォーマンスを向上させるためのヒントがいくつかあるとブログで述べていますPHP 7 の最初の方法は、opcache を有効にすることです:

Zend Opcache を有効にすることを忘れないでください。Opcache なしでも PHP7 は、Opcache を有効にした PHP-5.6 よりも高速であるため、前回のテスト期間中に、誰かが Opcache を有効にしませんでした。 .

Opcache とは何ですか?

Opcache の前身は Optimizer です。Optimizer は、PHP の公式企業である Zend によって開発された、クローズドソースですが無料で使用できる PHP 最適化加速コンポーネントです。オプティマイザーは、PHP コードをプリコンパイルすることによって生成されたスクリプト ファイル Opcode を共有メモリにキャッシュし、将来繰り返し使用できるようにすることで、ディスクからコードを読み取って再度コンパイルする時間の消費を回避します。同時に、コードの実行を高速化するためにいくつかのコード最適化モードも適用します。これにより、PHP の実行が高速化されます。

PHP の通常の実行プロセスは次のとおりです。

request リクエスト (nginx、apache、cli など) -->Zend エンジンが を読み取ります。 php ファイル -- > 辞書と式をスキャン --> ファイルを解析 --> 実行するコンピュータ コード (オペコードと呼ばれる) を作成 --> 最後にオペコードを実行 --> 応答が

# を返します。 ## 毎回 PHP スクリプトをリクエストすると、PHP ソース コードが変更されない場合、オペコードを毎回再生成する必要はありません。 Web では、将来使用するためにオペコードをキャッシュできます。キャッシュされたオペコードに直接アクセスした方が早いのではないでしょうか。オペコード キャッシュを有効にした後のフローチャートは次のとおりです。オペコード キャッシュの目的は、コンパイルの繰り返しを回避し、CPU とメモリのオーバーヘッドを削減することです。

以下では、Opcache のインストールを紹介します。

インストール:

1 opcache の拡張子を見つけます。私の拡張子は php7.1# です。

##
yum list php71*

2. 拡張機能をインストールします

yum install php71w-opcache.x86_64

設定:

zend_extension=opcache.so

[opcache]

;opcache を有効にする

opcache.enable=1

;CLI 環境では、PHP が OPcache を有効にします
opcache.enable_cli =1


;OPcache 共有メモリのストレージ サイズ、単位 MB
opcache.memory_consumption=128

;PHP は、パフォーマンスを向上させるために文字列インターニングと呼ばれるテクノロジを使用します。たとえば、コード内で文字列「foobar」を 1000 回使用した場合、PHP はその文字列を格納するために不変のメモリ領域を割り当てられるのは最初に使用されたときのみで、残りの 999 回はその文字列を直接指します。メモリ領域。このオプションは、この機能を次のレベルに引き上げます。デフォルトでは、この不変メモリ領域は単一の php-fpm プロセスにのみ存在し、共有されるすべての php-fpm プロセスに存在します。大規模なアプリケーションでは、これはメモリを節約し、アプリケーションのパフォーマンスを向上させるのに非常に効果的です。

このオプションの値はメガバイト単位です。16 に設定すると、デフォルトは 4MB です。
opcache.interned_strings_buffer=8

;このオプションは、メモリにキャッシュできる PHP ファイルの最大数。このオプションは、プロジェクト内のすべての PHP ファイルの合計よりも大きくなるように十分な大きさに設定する必要があります。
設定値範囲の最小値は 200、最大値は PHP 5.5.6 以前では 100000、PHP 5.5.6 以降では 1000000 です。つまり、200 から 1,000,000 の間です。

opcache.max_accelerated_files=4000


;キャッシュの有効期限を設定します (秒単位)。0 の場合は、毎回チェックする必要があります。
opcache.revalidate_freq=60

;From 文字通り、「より高速なシャットダウンを可能にする」という意味です。その役割は、単一リクエストの最後にコード内のデストラクターを呼び出す高速なメカニズムを提供することです。これにより、PHP の応答速度が向上し、PHP プロセス リソースがリサイクルされ、アプリケーションが次のリクエストにより迅速に応答できるようになります。このメカニズムを使用するには、1 に設定します。
opcache.fast_shutdown=1

;有効にすると (1 に設定)、OPcache は opcache.revalidate_freq で設定された秒数でファイルのタイムスタンプ (タイムスタンプ) をチェックし、スクリプトが更新されたかどうかを確認します。
このオプションが無効になっている (0 に設定されている) 場合、opcache.revalidate_freq は無視され、PHP ファイルはチェックされません。これは、コードを変更してサーバーに更新し、更新されたコードに対応する関数をブラウザーでリクエストした場合、更新の効果が表示されないことを意味します。実稼働環境で使用する場合は、0 に設定します。コードを更新した後、PHP と Web サーバーをスムーズに再起動します。
opcache.validate_timestamps=0

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

この方法で、PHP は一部のオペコード バイナリ エクスポート ファイルを /tmp ディレクトリにキャッシュします。これらのファイルは、PHP のライフ サイクル全体にわたって存在する可能性があります。
opcache.file_cache=/tmp

View phpinfo :

テスト結果 :

同じインターフェースが数百ミリ秒から約 50 ミリ秒に改善されました。

概要

##興味があるかもしれない記事:

PHP は再帰アルゴリズムに基づいてウサギがウサギを産む問題を解決します php ヒント


ThinkPHP_php の例での例外処理の詳細な説明


PHP7 CURL ベースの画像アップロード機能に基づく PHP スキル


##

以上がPHP7 で Opcode を有効にして強力なパフォーマンスを生み出す方法 PHP スキルの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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