検索
ホームページバックエンド開発PHP7OPcache 拡張機能を使用して PHP7 のパフォーマンスを向上させるためのヒント

OPcache 拡張機能を使用して PHP7 のパフォーマンスを向上させるためのヒント

推奨 (無料): PHP7

どこにいてもすぐに返信します私のメール: echo "YUBzYW1lZ28uY29tCg==" |base64 -d
序文
11時半です、もう決着の時間です。

PHP を実行すると、このようなプロセスが行われます。PHP コードはまずプリコンパイルされ、バイトコードが生成されてメモリにロードされます。最後に、CPU はコンパイルされたバイトをメモリ上で実行します。メモリのコードの断片。 PHP プログラムを実行するときに、毎回このようなプロセスを経ることがわかりますが、これは時間の無駄ではありません。そう、C 言語に従ってソース コードをコンパイルして、メモリに直接ロードできるので、お兄さんはどこですか?うん?。ライフルを取り出して、この弾丸OPcacheをロードしてください。 PHP5.5.0が登場してから、このzend拡張機能が組み込まれるようになりました。


OPcache とは
OPcache は、PHP のパフォーマンスを大幅に向上させることができる PHP の Zend 拡張機能です。
OPcache は、PHP スクリプトのプリコンパイルされたバイトコードを共有メモリに保存することで、PHP のパフォーマンスを向上させます。プリコンパイルされたバイトコードを保存する利点は、毎回 PHP スクリプトを読み込んで解析するオーバーヘッドを節約できることです。


OPcache が拡張されているかどうかを判断します

➜  ~ php -m | grep OPcache
Zend OPcache
Zend OPcache

有効になっていない場合は、php.ini 設定で有効にすることができます
/home /samego/service/php7.2/php.ini

➜  ~ echo zend_extension="opcache.so" >> /home/samego/service/php7.2/php.ini

OPcache の構成について
次に、PHP で OPcache を有効にする必要があります。設定ファイル (デフォルトは閉じられています):

opcache.enable=1

OPcache の最適化設定を続けてみましょう:

opcache.memory_consumption=512

この設定は、OPcache に割り当てるメモリ領域 (単位: MB) を示します。 , set 64 より大きい値が適しています。

opcache.interned_strings_buffer=64

この設定は、実際の文字列に割り当てる領域 (単位: MB) を示します。16 より大きい値を設定するだけです。

opcache.max_accelerated_files=32531

この構成は、キャッシュできるスクリプトの数を示します。この値は、プロジェクトに含まれるスクリプトの数にできるだけ近い (またはそれ以上) ように設定してください。

opcache.validate_timestamps=0

再検証スクリプトの構成値を変更します。0 (最高のパフォーマンス) に設定すると、PHP コードを変更するたびに OPcache を手動でクリアする必要があります。手動パージを望まない場合は、これを 1 に設定し、opcache.revalidate_freq を介して再検証間隔を構成できます。これにより、x 秒ごとに変更をチェックする必要があるため、パフォーマンスが低下する可能性があります。

opcache.save_comments=1

この設定ではスクリプトにコメントが残ります。一部のライブラリはこの設定に依存しており、オフにする利点が見つからないため、このオプションをオンにすることをお勧めします。

opcache.fast_shutdown=0

高速シャットダウンは、メモリをクリアするためのメカニズムを高速化しますが、ベンチマーク テストでは遅くなります。これにより、アプリケーションのパフォーマンスが向上する可能性がありますが、自分で試してみる必要があります。

最終的な構成の最適化は次のようになります:

opcache.enable=1
opcache.memory_consumption=512
opcache.interned_strings_buffer=64
opcache.max_accelerated_files=32531
opcache.validate_timestamps=0
opcache.save_comments=1
opcache.fast_shutdown=0

これらの構成値を試してみることができます。具体的な構成値は、アプリケーションのサイズとサーバー構成によって異なります。
Laravel コミュニティから学ぶ


Laravel OPcache

  • install

    ➜  ~ composer require appstract/laravel-opcache
  • configure

    ➜  ~ php artisan vendor:publish --provider="Appstract\Opcache\OpcacheServiceProvider" --tag="config"
  • command

# Clear OPcache:
➜  ~ php artisan opcache:clear

# Show OPcache config:
➜  ~ php artisan opcache:config

# Show OPcache status:
➜  ~ php artisan opcache:status

# Pre-compile your application code:
➜  ~ php artisan opcache:optimize

様子をみるシナリオ テスト

個人的には、データに関する
シナリオの方が好みです: (1) GET インターフェイスのリクエスト (2) テスト数は 10 (3) 同時実行数は 100

延長なしのケース

1000 リクエスト、32.32 秒かかり、1 秒あたり 30.94 リクエスト

Transactions:               1000 hits
Availability:             100.00 %
Elapsed time:              32.32 secs
Data transferred:           0.97 MB
Response time:              0.32 secs
Transaction rate:          30.94 trans/sec
Throughput:             0.03 MB/sec
Concurrency:                9.96
Successful transactions:        1000
Failed transactions:               0
Longest transaction:            0.44
Shortest transaction:           0.11

ケースに延長あり

1000 リクエストにかかった時間は 2.94 秒、リクエスト数は 1 秒あたり 340.14 でした。

Transactions:               1000 hits
Availability:             100.00 %
Elapsed time:               2.94 secs
Data transferred:           0.97 MB
Response time:              0.03 secs
Transaction rate:         340.14 trans/sec
Throughput:             0.33 MB/sec
Concurrency:                9.86
Successful transactions:        1000
Failed transactions:               0
Longest transaction:            0.29
Shortest transaction:           0.01

この一連のデータを見てとてもうれしく思いました。とてもうれしかったです。パフォーマンスの面では、あまりにもはっきりとしたコントラストがあるので、何も言うことはありません ~OPcache が正しいです

以上がOPcache 拡張機能を使用して PHP7 のパフォーマンスを向上させるためのヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はCSDNで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)