Opcache
1. Opcache の原理
PHP の通常の実行プロセスは次のとおりです。
リクエスト (nginx、apache、cli など) –> Zend エンジンは .php ファイルを読み取ります –> その辞書と式をスキャンします –> ファイルを解析します –> 実行されるコンピューター コードを作成します ( Opcode) –> ;最後に Opcode を実行–>response return
PHP スクリプトが要求されるたびに、上記の手順が実行されます。PHP ソース コードが変更されない場合、Opcode も変更されません。明らかに、毎回オペコードを再生成する必要はありません。Web のユビキタス キャッシュ メカニズムと組み合わせることで、オペコードをキャッシュできます。将来的には、キャッシュされたオペコードに直接アクセスした方が高速ではないでしょうか? オペコードを有効にした後のフローチャートキャッシュは次のとおりです。
オペコード キャッシュの目的は、コンパイルの繰り返しを回避し、CPU とメモリのオーバーヘッドを削減することです。
2. Opcache 構成
php.ini の下に追加します:
// 加载opcache(需确认已安装opcache拓展) zend_extension=opcache.so // 开启opcache opcache.enable = 1 // OPcache共享内存存储大小,单位MB opcache.memory_consumption=1024 // 1G // PHP使用了一种叫做字符串驻留,默认是4MB opcache.interned_strings_buffer=32 // 这个选项用于控制内存中最多可以缓存多少个PHP文件,这个选项必须得设置得足够大,大于你的项目中的所有PHP文件的总和 opcache.max_accelerated_files=80000 // 设置缓存的过期时间(单位是秒),为0的话每次都要检查 opcache.revalidate_freq=3 // 从字面上理解就是“允许更快速关闭” opcache.fast_shutdown=1 // CLI环境下,PHP启用OPcache opcache.enable_cli=1
HugePage
1. HugePage の原則
この機能を有効にすると、PHP7 は独自の TEXT セグメント (実行本体) を Huagepage に「移動」します。以前のテストでは、WordPress での QPS が 2% ~ 3% 増加することが着実に確認できました。
Hugepageとは何かというと、簡単に言うとデフォルトのメモリを4KB単位でページングしており、仮想アドレスとメモリアドレスを変換する必要があり、この変換にはテーブルルックアップが必要になります。プロセスでは、CPU に TLB (Translation Lookaside Buffer) が組み込まれます。仮想ページが小さい場合、テーブル内のエントリの数が多くなり、TLB サイズが制限されているのは明らかです。エントリが多いほど、値は高くなります。 TLB のキャッシュ ミスが発生するため、ラージ メモリ ページを有効にすると、間接的にこの TLB キャッシュ ミスを減らすことができます。詳細な紹介については、Google でよく調べたので詳しくは説明しません。ここでは、有効にする方法を中心に説明しますこの新機能により、パフォーマンスが大幅に向上します。
2. HugePage の構成
$ 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
## を追加します。 #Opcache ファイル キャッシュ
1. Opcache ファイル キャッシュの概要opcache を使用して、コンパイルされた PHP ファイルをファイルとして保存し、PHP ソース コードの保護とスクリプトの高速化を実現します。明らかにパフォーマンスが向上します
2. Opcache ファイル キャッシュの設定php.ini:
opcache.file_cache=/tmpを追加して、PHP が /tmp ディレクトリにあるように、一部の Opcode バイナリ エクスポートをキャッシュします。ファイルは、PHP ライフサイクル全体にわたって存在する可能性があります。
設定後に php-fpm を再起動する必要があります
個人テスト
システム: centOs 7php バージョン: 7.4
nginx
laravel: 8.5
最適化前
cpu:95%- 96%メモリ: 2G/16G
10 分 4W 同時実行
障害率: 24%
![PHP7 パフォーマンスの最適化]
![PHP7 パフォーマンスの最適化に関するメモ]
#最適化後 #cpu:20%-40 %
メモリ: 5.8G/16G (ここでは HugePage が 2048 に設定されています)10 分で 4W の同時実行
障害率: 0%
最初のストレス テスト 集計レポート
1秒あたりに処理されたトランザクション数
2回目のストレステスト集計レポート
1秒あたりのトランザクションの処理
推奨学習: 「
>>」
以上が高品質ノートがここにあります! PHP7のパフォーマンス最適化についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

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

ホットトピック









