目次
私たちは PHP の php7 についてたくさんのことを学びました。皆さんが php7 についてどれだけ知っているかわかりません。この部分の知識があれば、心配する必要はありません。この記事を読めば、この内容をより深く理解できるようになります。
PHP7 テクノロジー研究の背景
PHP7 のパフォーマンスは小さい 注
PHP7 のパフォーマンスの第一印象 (PHP5 の 3 倍 + 改善)
1. パフォーマンスの比較 - 簡単なソート アルゴリズム (ランダムに 5000 個の数値を生成し、クイック アルゴリズムに従ってソートします)
2. パフォーマンスの比較 - WordPress ホームページ
3. パフォーマンス比較 - Flyme Community APP
パフォーマンス テストとソリューションで発生したいくつかの問題
なぜ PHP7 のパフォーマンスがこれほど向上するのでしょうか?
PHP7 の実際のビジネスパフォーマンス向上が 30% 程度にとどまるのはなぜですか?
Redis プロキシの問題
PHP と Redis 間の長いリンクと短いリンクに関する問題
MYSQL データベース接続プールの質問
PHP7 パフォーマンス最適化の詳細
PHP7 Opcache (約 1 倍の改善)
Opcache の動作原理?
コンパイラ GCC4.8 PGO (5% ~ 10% 増加)
複数の PHP-FPM メイン プロセスを開く (約 10% 増加)
ホームページ バックエンド開発 PHP7 PHP7のパフォーマンスの変化が1分でわかる(パフォーマンスが4倍に向上)

PHP7のパフォーマンスの変化が1分でわかる(パフォーマンスが4倍に向上)

Jun 25, 2021 am 10:22 AM
PHPのパフォーマンス

私たちは PHP の php7 についてたくさんのことを学びました。皆さんが php7 についてどれだけ知っているかわかりません。この部分の知識があれば、心配する必要はありません。この記事を読めば、この内容をより深く理解できるようになります。

PHP7 テクノロジー研究の背景

  1. 会社の収益増加と支出削減を背景にコスト削減が必要です
  2. PHP7 のパフォーマンスを以前の製品と比較した場合Meizu Online の現在の PHP バージョン 5.X 少なくとも 2 倍
  3. コミュニティの毎日のアクティブ ユーザーは急速に増加しています (15 年間のデータの毎日の平均 PV は年間 348% 増加し、毎日の平均 UV はは年間成長率 112%)
  4. モバイル インターネット環境では、より良いユーザー エクスペリエンスを満たすためにプログラムがユーザーの要求に迅速に応答できるようにすることが求められます
  5. 新しいテクノロジに関する知識への欲求 (ユーザーのニーズを満たすため)ほんの少しの見栄)

PHP7 のパフォーマンスは小さい 注

PHP7 のパフォーマンスの第一印象 (PHP5 の 3 倍 + 改善)

1. パフォーマンスの比較 - 簡単なソート アルゴリズム (ランダムに 5000 個の数値を生成し、クイック アルゴリズムに従ってソートします)

PHP7のパフォーマンスの変化が1分でわかる(パフォーマンスが4倍に向上)
PHP5.1 5000 個の数値を使用したクイック ソートの平均応答時間は 2587ms です。
PHP5.2 5000 個の数値によるクイック ソートの平均応答時間は 2625 ミリ秒です。
PHP5.3 5000 個の数値によるクイック ソートの平均応答時間は 2509 ミリ秒です。
PHP5.4 5000 個の数値によるクイック ソートの平均応答時間は 2339 ミリ秒
PHP7.0 5000数値クイックソート 平均応答時間 685ms

2. パフォーマンスの比較 - WordPress ホームページ

PHP7のパフォーマンスの変化が1分でわかる(パフォーマンスが4倍に向上)
PHP5.1 WordPress 平均応答時間 505ms
PHP5.2 WordPress 平均応答時間521ms
PHP5.3 WordPress 平均応答時間 498ms
PHP5.4 WordPress 平均応答時間 470ms
PHP7.0 WordPress 平均応答時間 158ms

3. パフォーマンス比較 - Flyme Community APP

PHP7のパフォーマンスの変化が1分でわかる(パフォーマンスが4倍に向上)
PHP5.4 500 クイック ソート TPS 552
PHP7.0 500 番号クイック ソート TPS 3165
Flyme コミュニティ APP ホーム ページ PHP5.4 TPS 1535
Flyme コミュニティ APP ホームページ PHP7.0 TPS 1975
Flyme コミュニティ APP セクション リスト ページ PHP5.4 TPS 2237
Flyme コミュニティ APP セクション リスト ページ PHP7.0 TPS 2387

パフォーマンス テストとソリューションで発生したいくつかの問題

なぜ PHP7 のパフォーマンスがこれほど向上するのでしょうか?

1. JIT
2. Zval の変更点
3. 内部型 zend_string
4. PHP 配列 (HashTable および Zend Array) の変更点
5. 関数呼び出しメカニズム (Function呼び出し規約)
6. マクロ定義とインライン関数 (inline) により、コンパイラに作業の一部を事前に完了させます

PHP7 の実際のビジネスパフォーマンス向上が 30% 程度にとどまるのはなぜですか?

  1. 実際のビジネスには必ずしも非常に複雑な計算ロジックがあるわけではありません
  2. 実際のビジネスでは Redis と MYSQL が使用され、ネットワークと IO のボトルネックが PHP7 の全体的なパフォーマンスに影響します
  3. HTTPS パフォーマンスの問題により、PHP7 の機能が制限されます

Redis プロキシの問題

Redis プロキシの目的は、Redis の高可用性と分散キャッシュです
合格 パフォーマンス テストは比較的直接接続ですプロキシの使用によるパフォーマンスの損失は約 10 ~ 15% です (ビジネスによって比較的大きな差が生じる可能性があります)

それでは、プロキシを最適化する余地はあるのでしょうか?

PHP と Redis 間の長いリンクと短いリンクに関する問題

PHP7 Redis の長い接続のパフォーマンスは、短い接続のパフォーマンスよりも約 10% 高い (ビジネスによって大きく異なります)

MYSQL データベース接続プールの質問

PHP7のパフォーマンスの変化が1分でわかる(パフォーマンスが4倍に向上)

データベース接続プールは、データベース接続の割り当て、管理、解放を担当します。これにより、アプリケーションは新しいデータベース接続を確立する代わりに、既存のデータベース接続を再利用できるようになります。
Atlas は、360 によって開発および保守されているデータベース ミドルウェアです。アプリケーションと MySQL の間に位置し、MySQL のクライアント/サーバー プロトコルを実装し、サーバーとしてアプリケーションと通信し、クライアントとして MySQL と通信します。 DB の詳細をアプリケーションから保護し、MySQL の負担を軽減します。

Atlas は、読み取り、読み取りと書き込みの分離、自動テーブル シャーディング、セキュリティ処理、スムーズな再起動、接続プールなどに影響を与えることなく、メイン データベースのダウンタイムをサポートします。
データベース接続プールの使用後、TPS パフォーマンス レバレッジは 80 倍に増加します。 %
効果を見てみましょう

PHP7のパフォーマンスの変化が1分でわかる(パフォーマンスが4倍に向上)

PHP7 パフォーマンス最適化の詳細

PHP7 Opcache (約 1 倍の改善)

Opcache の動作原理?
  1. PHP はインタープリタ言語であり、Zend エンジンは PHP コードを実行可能なマシン コード (操作コード) に解釈し、実行のために CPU に渡します。
    PHP7のパフォーマンスの変化が1分でわかる(パフォーマンスが4倍に向上)
  2. Opcache の高速化方法
    PHP7のパフォーマンスの変化が1分でわかる(パフォーマンスが4倍に向上)

  3. opcache を追加した後の結果を見てください (リクエストの平均、応答時間は
    PHP7のパフォーマンスの変化が1分でわかる(パフォーマンスが4倍に向上)

コンパイラ GCC4.8 PGO (5% ~ 10% 増加)

PGO は、コンパイル最適化テクノロジです。 GCC などのコンパイラで使用すると、コンパイラのコンパイル効率を向上させることができます。
PGO はコンパイル効率を向上させることができますが、あまり広く使用されていません。
理由は非常に単純です:
1. 複雑な二重コンパイル モデルと限られた使用シナリオにより、PGO は役に立たないように見えます
2. opcache のような製品の出現後、PGO によってもたらされるパフォーマンスの向上はあまり明らかではありません。

複数の PHP-FPM メイン プロセスを開く (約 10% 増加)

<source lang="xml" collapse="false" first-line="1">
    #php-fpm.conf 
    listen = /dev/shm/php-fcgi.sock
    #php-fpm2.conf 
    listen = /dev/shm/php-fcgi2.sock

    #/usr/local/php/sbin/php-fpm --fpm-config /usr/local/php/etc/php-fpm.conf
    #/usr/local/php/sbin/php-fpm --fpm-config /usr/local/php/etc/php-fpm2.conf

    #代理
    upstream backend{
        server unix:/dev/shm/php-fcgi.sock;
        server unix:/dev/shm/php-fcgi2.sock;
    }
</source>
ログイン後にコピー

HugePage (2%-3% 増加)

#デフォルトのメモリは 4KB でページングされており、仮想アドレスとメモリ アドレスを変換する必要があり、この変換にはテーブル ルックアップが必要です。

テーブル ルックアップ プロセスを高速化するために、CPU には組み込みのTLB (Translation Lookaside Buffer)。仮想ページが小さいほど、テーブル内のエントリの数は多くなります。
そして、TLB サイズには制限があります。エントリが多いほど、TLB のキャッシュ ミスが増加します。したがって、大きなメモリ ページを有効にできれば、この TLB キャッシュ ミスを間接的に減らすことができます。

<source lang="xml" collapse="false" first-line="1">
    opcache.huge_code_pages=1
    sudo sysctl vm.nr_hugepages=128
</source>
ログイン後にコピー

フェーズ パフォーマンス パラメーターの最適化

PHP 部分的なパフォーマンス パラメーターの最適化

  1. php.ini 構成

    <source lang="xml" collapse="false" first-line="1">
        opcache.enable=1
        opcache.enable_cli=1
        opcache.memory_consumption=128
        opcache.interned_strings_buffer=8
        opcache.max_accelerated_files=4000
        opcache.revalidate_freq=60
        opcache.save_comments=0
        opcache.fast_shutdown=1
        opcache.huge_code_pages=1
        opcache.file_cache=/dev/shm/opcache/
    </source>
    ログイン後にコピー

  2. PHP-FPM

    <source lang="xml" collapse="false" first-line="1">
        listen = /dev/shm/php-fcgi.sock
        pm = static
        pm.max_children = 320
        pm.max_requests = 10240
    </source>
    ログイン後にコピー
    未解決の問題

    Nginx HTTPSパフォーマンスの問題

    ##PHP7 技術研究の背景

    会社の収益増加と支出削減を背景にコスト削減が必要です
    1. 従来と比較現在の Meizu、PHP7 オンライン PHP バージョン 5 のパフォーマンス。モバイル インターネットの一般的な環境では、より良いユーザー エクスペリエンスを満たすために、プログラムがユーザーの要求に迅速に応答できることが必要です。
    2. 新しいテクノロジーに関する知識への欲求 (満足させるため)少しの虚栄心)
    3. 関連する学習ビデオの共有:
    4. php ビデオ チュートリアル

    以上がPHP7のパフォーマンスの変化が1分でわかる(パフォーマンスが4倍に向上)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

PHP を使用してパフォーマンス分析とチューニングを行う方法 PHP を使用してパフォーマンス分析とチューニングを行う方法 Jun 06, 2023 pm 01:21 PM

PHP は人気のあるサーバーサイド言語として、Web サイトの開発と運用において重要な役割を果たしています。ただし、PHP コードの量が増加し続け、アプリケーションが複雑になるにつれて、パフォーマンスのボトルネックが発生する可能性がますます高まっています。この問題を回避するには、パフォーマンスの分析とチューニングを実行する必要があります。この記事では、PHP を使用してパフォーマンス分析とチューニングを行い、アプリケーションにより効率的な実行環境を提供する方法を簡単に紹介します。 1. PHP パフォーマンス分析ツール 1.XdebugXdebug は、広く使用されているコード分析ツールです。

同時プログラミング フレームワークを使用して PHP のパフォーマンスを向上させる方法 同時プログラミング フレームワークを使用して PHP のパフォーマンスを向上させる方法 Aug 12, 2023 am 09:33 AM

同時プログラミング フレームワークを使用して PHP のパフォーマンスを向上させる方法 Web アプリケーションの複雑さが増し続けるにつれて、開発者は高い同時実行処理が直面する課題となっています。従来の PHP 言語には、同時リクエストを処理する際にパフォーマンスのボトルネックがあり、開発者はより効率的なソリューションを見つける必要がありました。 Swoole や ReactPHP などの同時プログラミング フレームワークを使用すると、PHP のパフォーマンスと同時処理能力を大幅に向上させることができます。この記事では、Swoole と ReactPHP を使用して PHP アプリケーションのパフォーマンスを向上させる方法を紹介します。私達はします

PHP CI/CD と PHP のパフォーマンス: プロジェクトのパフォーマンスを向上させるには? PHP CI/CD と PHP のパフォーマンス: プロジェクトのパフォーマンスを向上させるには? Feb 19, 2024 pm 08:06 PM

PHPCI/CD の概要 CI/CD (継続的インテグレーションおよび継続的デリバリー) は、開発チームが高品質のソフトウェアをより頻繁に配信するのに役立つソフトウェア開発手法です。 CI/CD プロセスには通常、次の手順が含まれます。 開発者はコードをバージョン管理システムに送信します。ビルド システムは自動的にコードをビルドし、単体テストを実行します。ビルドとテストに合格すると、コードがテスト環境にデプロイされます。テスターはテスト環境でコードをテストします。テストに合格すると、コードが実稼働環境にデプロイされます。 CI/CD は PHP プロジェクトのパフォーマンスをどのように向上させますか? CI/CD は、次の理由により PHP プロジェクトのパフォーマンスを向上させることができます。 自動テスト。 CI/CD プロセスには自動テストが含まれることが多く、開発チームがバグを早期に発見して修正するのに役立ちます。これ

PHP におけるセキュリティとパフォーマンスのトレードオフ PHP におけるセキュリティとパフォーマンスのトレードオフ Jul 06, 2023 pm 08:57 PM

PHP におけるセキュリティとパフォーマンスのトレードオフの概要: 人気のある Web プログラミング言語として、PHP は柔軟な開発環境と豊富な機能を提供するだけでなく、セキュリティとパフォーマンスのトレードオフにも直面します。この記事では、PHP のセキュリティとパフォーマンスの問題を検討し、この 2 つのバランスをとる方法を説明するコード例をいくつか示します。はじめに: Web アプリケーション開発では、セキュリティとパフォーマンスは相互に関連していますが、独立して重要な 2 つの側面です。サーバーサイド言語 PHP は優れたプログラミング機能と強力な機能を備えていますが、次のような用途には適していません。

コンテナ化環境における PHP 関数のパフォーマンスの向上 コンテナ化環境における PHP 関数のパフォーマンスの向上 Apr 13, 2024 pm 03:42 PM

コンテナ化環境における PHP 関数のパフォーマンス最適化戦略には、次のものが含まれます。 PHP バージョンのアップグレード PHP 構成の最適化 (メモリ制限の増加、OPcache の有効化など) PHP 拡張機能の使用 (APC、Xdebug、Swoole など) コンテナ構成の最適化 (たとえば、メモリと CPU の制限の設定として))

Memcache を使用して PHP アプリケーションのパフォーマンスを向上させるにはどうすればよいですか? Memcache を使用して PHP アプリケーションのパフォーマンスを向上させるにはどうすればよいですか? Nov 07, 2023 pm 12:02 PM

Memcache は、PHP アプリケーションのパフォーマンスを大幅に向上させる効率的なキャッシュ ソリューションです。この記事では、Memcache を使用して PHP アプリケーションのパフォーマンスを最適化する方法を説明し、実践的な PHP コード例を示します。 Memcacheとは何ですか? Memcache は、データをメモリに保存して高速応答を提供するオープンソースの分散キャッシュ ソリューションです。データはメモリに保存されるため、クエリは非常に高速です。他のデータベースで解決

PHP を使用してパフォーマンス分析とチューニングを行う方法 PHP を使用してパフォーマンス分析とチューニングを行う方法 Jun 06, 2023 pm 01:21 PM

PHP は人気のあるサーバーサイド言語として、Web サイトの開発と運用において重要な役割を果たしています。ただし、PHP コードの量が増加し続け、アプリケーションが複雑になるにつれて、パフォーマンスのボトルネックが発生する可能性がますます高くなります。この問題を回避するには、パフォーマンスの分析とチューニングを実行する必要があります。この記事では、PHP を使用してパフォーマンス分析とチューニングを行い、アプリケーションにより効率的な実行環境を提供する方法を簡単に紹介します。 1. PHP パフォーマンス分析ツール 1.XdebugXdebug は、広く使用されているコード分析ツールです。

マイクロサービスを使用して PHP 関数のパフォーマンスと応答性を向上させるにはどうすればよいですか? マイクロサービスを使用して PHP 関数のパフォーマンスと応答性を向上させるにはどうすればよいですか? Sep 18, 2023 pm 12:03 PM

マイクロサービスを使用して PHP 関数のパフォーマンスと応答性を向上させるにはどうすればよいですか?ますます発展するインターネット時代において、Web サイトやアプリケーションに対するユーザーの基本的な要件は、高性能と高速応答です。一般的に使用されるバックエンド開発言語として、PHP はユーザーのニーズを満たすためにパフォーマンスと応答速度を継続的に向上させる必要もあります。マイクロサービス アーキテクチャは、PHP アプリケーションのパフォーマンスを向上させるだけでなく、スケーラビリティと保守性も向上させる優れたソリューションとなっています。この記事では、マイクロサービスを使用して PHP 関数のパフォーマンスを向上させる方法について説明します

See all articles