推奨 (無料): 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 サイトの他の関連記事を参照してください。