ホームページ バックエンド開発 PHPチュートリアル PHP パフォーマンス問題の分析 + 最適化

PHP パフォーマンス問題の分析 + 最適化

Apr 19, 2019 pm 06:03 PM
php 最適化

この記事は、PHP のパフォーマンス問題の分析と最適化に関するものです。興味のある友人は、ぜひ詳細を学びに来てください。

PHP のパフォーマンスの問題はどのような状況で発生しますか?
1 PHP 構文の不適切な使用
2 PHP 言語が苦手なことは実行できません
3 PHP 言語を使用して接続されるサービスは強力ではありません
4 PHP 自体の欠点
5 問題は私にもわかりません

パフォーマンス問題の分析

PHP のパフォーマンス問題はプロジェクト全体のパフォーマンス問題の 50% を占めていますこの割合は 50% 未満です。

パフォーマンス最適化プロジェクトは、PHP のみの最適化に限定すべきではありません。

PHP 言語レベルのパフォーマンスの最適化
|
|
PHP 周辺機器のパフォーマンス問題の最適化



Apache Benchmark(ab)(ご自身でダウンロードできます)
ab は、Apache が提供するストレス テスト ソフトウェアです。 Apache サーバーのインストール時に含まれます。 #########使い方?

#。/AB-N1000 -C100 http://www.baidu.com/

ターゲットストレステストアドレス
Php-ストレス テスト ツールの使用法のデモ




1 秒あたりのできるだけ多くの同時実行に主に焦点を当てます

リクエストにかかる時間をできる限り短くします

PHP 独自の機能をより多く使用する

最適化: コードの作成量を減らし、PHP 独自の機能をより多く使用する

パフォーマンスの問題: 自己 コードには多くの冗長性があり、可読性が低く、パフォーマンスが低い

パフォーマンスがこれほど低いのはなぜですか?
良い方法: PHP の組み込み変数/定数/関数をさらに使用する
PHP 自身の能力パフォーマンス テストのためのコードの準備


php コード実行プロセス


*.php ---スキャナ--->式 -----パーサー--->オペコード---実行--->出力




php 組み込み関数間のパフォーマンステスト



最適化ポイント: php 組み込み関数のパフォーマンス上のメリットとデメリット

状況説明: php 組み込み関数、
間のブロック速度の差はまだあります。 良い提案: PHP 組み込み関数の時間計算量について詳しく学ぶ


PHP ビルド間のパフォーマンス テストのコード テスト-in 関数



isset($arr[$i]); //平均 50ms
array_key_exists($i,$arr);//平均 85ms


PHP を削減マジック関数の使用

状況説明: PHP が提供するマジック関数のパフォーマンスが低い
パフォーマンスが低い理由 PHP プログラマのトラブルを避けるために、PHP 言語は多くのことを行ってくれます

良い方法 PHP マジック関数の使用をできるだけ避ける




PHP エラー抑制機能を無効にする

@
## の実際のロジック# コードの開始前と終了後に増加します。オペコードはエラーを無視します。

php -dv|d.active=1 -dv|d.execute=0 at.php

ただ、チェックを入れて実際には実行したくない


PHP - メモリと正規表現の合理的な使用
最適化ポイント: メモリの合理的な使用

PHP には収益を保証するメモリ リサイクル メカニズムがありますが、メモリの使用には注意してください。

良いアドバイス
unset() を使用して、未使用のメモリを時間内に解放してください (注: unset()ログアウトできない可能性があります)


正規表現の使用はできるだけ少なくしてください

正規表現のバックトラッキングのオーバーヘッドは比較的大きいため、

良い提案:
同じロジックを実現するには文字列処理関数を使用します。


PHP - ループ内での計算を避ける

最適化ポイント: ループ内での計算を避ける

状況の説明:
ループ内の計算式が繰り返し計算されます

コード例:
# PHP は大規模なデータの計算には適していません


PHP は次のような場合に適していますシナリオ

Web サーバーとバッキング サービスの接続、UI レンダリングに適しています


PHP - 必ず引用符を使用してください文字列をキー値として使用してください

PHP はキー値を扱います定数として引用符を使用しないため、定数を見つけるオーバーヘッドが発生します。

引用符で囲まれた文字列をキー値として厳密に使用します。




PHP に関する問題の分析と説明



PHP の周辺機器とは何ですか?

Linux 動作環境 php ハードディスク (ファイル ストレージ) データベース (mysql など) キャッシュ ネットワーク


分析PHP 周辺機器が PHP プログラムに及ぼす影響

ファイル タイプ操作の削減 一般的な PHP シナリオのオーバーヘッド順序 :

ディスクの読み取りと書き込み 読み取りと書き込みデータベースの書き込み メモリの読み取りおよび書き込み ネットワーク データの読み取りおよび書き込み

メモリの読み取りおよび書き込み<<データベースの読み取りおよび書き込み< ディスクの読み取りおよび書き込み< ネットワーク データの読み取りおよび書き込み




PHP によって開始されるネットワーク リクエストの削減



ネットワーク リクエストの落とし穴:
1 相手のインターフェイスの不確実要素
2 ネットワークの安定性パフォーマンス
ネットワーク リクエストの最適化

# 1セットタイムアウト期間
#接続タイムアウト
読み取りタイムアウト800ms 書き込みタイムアウト500ms 2並列シリアルリクエストバッチセッションcurl_multi_close cURLハンドルのグループを閉じるcurl_multi_exec現在のcURLハンドルのサブ接続を実行
curl_multi_getcontent CURLOPT_RETURNTRANSFER が設定されている場合、取得した出力テキスト ストリームを返します。
curl_multi_info_read 現在解析されている cURL の関連送信情報を取得します。
curl_multi_remove_handle CURL バッチ処理ハンドル リソース内のハンドル リソースを削除します。
curl_multi_select すべてのアクティブな接続を待ちます。 cURL バッチ処理での
curl_multi_setopt cURL マルチ ハンドルのオプションの設定
curl_multi_strerror - エラー コードを説明する文字列を返す


推奨される swoole 拡張機能


PHP 出力の圧縮の長所と短所
PHP インターフェイスの出力の圧縮
圧縮方法は?

Gzip を使用する
# 利点 データ出力に役立ち、クライアントはより速くデータを取得できます
欠点 CPU オーバーヘッドの追加

PHP キャッシュの再利用

以下出力コンテンツはどのような状況でキャッシュされますか?
複数のリクエスト、コンテンツは変更されない


Smarty の調整と時間枠の重複に関するアイデア

Smarty がキャッシュをオンにする

時間枠の重複に関するアイデア

シリアル:
Process1 Process2 Process3 Process4

重複する時間枠:

process1
process2
process3
Process4

次の時間枠タスクは前のタスクに強く依存していないため、オーバーラップ時間を使用できます



PHP バイパス処理ソリューション
一般的には通常の: x.php -> プロセス 1 ->プロセス 2 ->プロセス 3 -> プロセス 4->

バイパス ソリューション: x.php -> プロセス 1 ->プロセス 2 (同時に) ->プロセス 3 (同時に) -->Process4->

推奨チュートリアル:

PHP ビデオ チュートリアル

以上がPHP パフォーマンス問題の分析 + 最適化の詳細内容です。詳細については、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)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

See all articles