PHP7の最適化とパフォーマンス向上の方法を解説した記事
PHP7 がリリースされました。この 10 年間で PHP の最大のバージョン アップグレードおよび最大のパフォーマンス アップグレードとして、PHP7 は複数のテストで明らかなパフォーマンスの向上を示しました。ただし、それを機能させるには最大のパフォーマンスを実現するために、いくつか注意すべき点があります。
1. Opcache
Zend Opcache を有効にすることを忘れないでください。 Opcache を有効にしなくても PHP7 は PHP-5.6 よりも高速であるため、前回のテスト期間中に Opcache を有効にしなかった人もいます。Opcache を有効にするのは非常に簡単です。php.ini 設定ファイルに
zend_extension=opcache.so opcache.enable=1 opcache.enable_cli=1"
2. 新しいコンパイラを使用します
##新しいコンパイラを使用します。GCC 4.8 以降を推奨します。これは、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 を例として、512 の予約済み巨大ページ メモリを次のように割り当てます:$sudo sysctl vm.nr_hugepages=512
$ cat /proc/meminfo | grep Huge AnonHugePages: 106496 kB HugePages_Total: 512 HugePages_Free: 504 HugePages_Rsvd: 27 HugePages_Surp: 0 Hugepagesize: 2048 kB
opcache.huge_code_pages=1
4. Opcache ファイル キャッシュ
Opcache ファイル キャッシュを有効にする (実験的)。これを有効にすることで、Opcache にオペコード キャッシュを外部にキャッシュさせることができます。一部のスクリプトのファイルには、明らかにパフォーマンスが向上します。php.ini に追加します:
opcache.file_cache=/tmp
5.PGO
前回の記事: PHP7 を高速化する (GCC PGO) も紹介PHP が WordPress や Drupal など、1 つのプロジェクト専用の場合は、PGO を使用してプロジェクト専用の PHP を改善してみてください。プロジェクトによりパフォーマンスが向上します。具体的には、最適化シナリオとして wordpress 4.1 を使用します。最初に PHP をコンパイルするとき:コードは次のとおりです:$ make prof-gen
$ sapi/cgi/php-cgi -T 100 /home/huixinchen/local/www/htdocs/wordpress/index.php >/dev/null
最後に:
$ make prof-clean $ make prof-use && make install
以上がPHP7の最適化とパフォーマンス向上の方法を解説した記事の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









さまざまな Java フレームワークのパフォーマンス比較: REST API リクエスト処理: Vert.x が最高で、リクエスト レートは SpringBoot の 2 倍、Dropwizard の 3 倍です。データベース クエリ: SpringBoot の HibernateORM は Vert.x や Dropwizard の ORM よりも優れています。キャッシュ操作: Vert.x の Hazelcast クライアントは、SpringBoot や Dropwizard のキャッシュ メカニズムよりも優れています。適切なフレームワーク: アプリケーションの要件に応じて選択します。Vert.x は高パフォーマンスの Web サービスに適しており、SpringBoot はデータ集約型のアプリケーションに適しており、Dropwizard はマイクロサービス アーキテクチャに適しています。

PHP の配列キー値の反転メソッドのパフォーマンスを比較すると、array_flip() 関数は、大規模な配列 (100 万要素以上) では for ループよりもパフォーマンスが良く、所要時間が短いことがわかります。キー値を手動で反転する for ループ方式は、比較的長い時間がかかります。

C++ マルチスレッドのパフォーマンスを最適化するための効果的な手法には、リソースの競合を避けるためにスレッドの数を制限することが含まれます。競合を軽減するには、軽量のミューテックス ロックを使用します。ロックの範囲を最適化し、待ち時間を最小限に抑えます。ロックフリーのデータ構造を使用して同時実行性を向上させます。ビジー待機を回避し、イベントを通じてリソースの可用性をスレッドに通知します。

Java 関数のパフォーマンスをベンチマークする方法は、Java Microbenchmark Suite (JMH) を使用することです。具体的な手順は次のとおりです。 JMH 依存関係をプロジェクトに追加します。新しい Java クラスを作成し、ベンチマーク メソッドを表す @State アノテーションを付けます。クラス内にベンチマーク メソッドを記述し、 @Benchmark アノテーションを付けます。 JMH コマンド ライン ツールを使用してベンチマークを実行します。

さまざまな PHP 関数のパフォーマンスは、アプリケーションの効率にとって非常に重要です。パフォーマンスの良い関数には echo や print などがありますが、str_replace、array_merge、file_get_contents などの関数のパフォーマンスは低くなります。たとえば、str_replace 関数は文字列の置換に使用され、中程度のパフォーマンスを発揮しますが、sprintf 関数は文字列の書式設定に使用されます。パフォーマンス分析によると、1 つの例の実行にかかる時間はわずか 0.05 ミリ秒であり、関数が適切に実行されることが証明されています。したがって、関数を賢く使用すると、アプリケーションをより高速かつ効率的に実行できます。

PHP では、配列からオブジェクトへの変換はパフォーマンスに影響を与え、主に配列のサイズ、複雑さ、オブジェクト クラスなどの要因によって影響を受けます。パフォーマンスを最適化するには、カスタム反復子の使用、不必要な変換の回避、配列のバッチ変換などの手法を検討してください。

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

ベンチマークによると、小規模で高性能なアプリケーションの場合、Quarkus (高速起動、低メモリ) または Micronaut (TechEmpower に優れた) が理想的な選択肢です。 SpringBoot は大規模なフルスタック アプリケーションに適していますが、起動時間とメモリ使用量が若干遅くなります。
