ホームページ >バックエンド開発 >PHPチュートリアル >誰もが知っておくべき簡単な PHP パフォーマンス最適化の注意点、PHP パフォーマンス最適化_PHP チュートリアル
パフォーマンスの問題が発生する可能性がある場合:
1. PHP 構文の不適切な使用
2. 苦手なことはPHP言語を使ってやってみよう
3. php言語で接続するサービスが良くない
4.php自体の欠点
5.私にもわからない質問
一般的な状況: PHP パフォーマンスの問題は半分を超えません (通常 30%~40%)
phpのパフォーマンス問題解決の方向性:
PHP 言語レベルのパフォーマンスの最適化—> PHP 周辺問題 (接続されたサービス、ネットワーク環境) のパフォーマンスの最適化—> PHP 言語自体の分析と最適化
(php言語レベル)
最適化ポイント: 記述するコードを減らし、PHP 独自の機能をより多く使用します
問題: 自分で書いたコードには冗長性が多く可読性が低いため、パフォーマンスが低下します
低い理由: PHP コードをコンパイルし、基礎となる言語に解析する必要があるため、このプロセスはリクエストごとに処理され、非常にコストがかかります
。
方法: PHP の組み込み変数、定数、関数をさらに使用します
最適化ポイント: PHP組み込み関数のパフォーマンス上の利点と欠点
状況の説明: PHP 組み込み関数間にはまだ速度差があります
提案: PHP の組み込み関数の時間計算量について詳しく学んでください
最適化ポイント: マジック関数の使用を最小限に抑える
状況説明: php が提供するマジック関数のパフォーマンスが低いです
パフォーマンスが低い理由: PHP プログラマーの手間を省くために、PHP 言語は多くのことをしてくれました
良い方法: PHP マジック関数の使用はできるだけ避けてください
最適化ポイント: 追加のオーバーヘッドを生成するエラー抑制装置@
実際のロジック: コードを開始する前に最高のエラー レベルを設定し、コードが終了した後にエラー レベルを再度設定します。オペコードを追加してエラーを無視します
最適化ポイント: メモリの合理的な使用
状況の説明: PHP には収益を保証するメモリ回復メカニズムがありますが、メモリを使用する場合は注意してください
提案: unset() を使用して、適切でないメモリを時間内に解放してください (注: unset() はログアウトできない場合があります)
最適化ポイント: 正規表現の使用を最小限に抑える
状況の説明: 現在の式のバックトラッキングのオーバーヘッドは比較的大きく、「ダイヤモンドなしではセラミックの作業は行わないでください」
提案: 文字列処理関数を使用して同じロジックを実装します
最適化ポイント: ループ内での操作の実行を避ける
状況説明: ループ内の計算式が繰り返し計算されます
最適化ポイント: コンピューティング集約型のビジネスを削減
状況の説明: PHP は集中的なコンピューティングのシナリオには適していません
なぜですか? PHP の言語特性により、PHP は大量のデータの操作には適していないと判断されます
PHP は次のシナリオに適しています: Web サーバーとバックエンド サービスの接続、UI プレゼンテーションに適しています
最適化ポイント: キー値として引用符で囲まれた文字列を必ず使用してください
状況の説明: PHP は引用符のないキー値を定数として扱うため、定数を検索するオーバーヘッドが発生します
提案: キー値として引用符を厳密に使用してください
-------------------------------------------------
(PHP周辺問題のパフォーマンスの最適化)-
実行環境、ファイルストレージ、データベース、キャッシュ、ネットワーク
ファイル操作を減らす
一般的な PHP シナリオのオーバーヘッド順序:
ディスクの読み取りと書き込み、データベースの読み取りと書き込み、メモリの読み取りと書き込み、ネットワーク データの読み取りと書き込み
メモリの読み取りと書き込み
ネットワークリクエストを最適化します
ネットワークリクエストの落とし穴:
1. 相手のインターフェースの不確定要素
2.ネットワークの安定性
ネットワークリクエストを最適化するには?
1.タイムアウトを設定する
a) 接続タイムアウト 200ms
b) 読み取りタイムアウト 800ms
c) 書き込みタイムアウト 500ms
2. シリアルリクエストを並列化する
a)curl_multi_*()を使用します
b) スウールエクステンションを使用する
PHPインターフェース出力を圧縮
重複した計算内容をキャッシュする
どのような状況で出力コンテンツをキャッシュする必要がありますか?
複数のリクエストでも内容は変わりません
重複する時間枠のアイデア
バイパスソリューション
PHP自体を分析して最適化します:
ツールを使ってテストする
PHP パフォーマンスのボトルネックの解決策:
オペコード キャッシュ (コード コンパイルの最後のステップでのキャッシュ) オペコード キャッシュには PHP 拡張機能 APC が使用されます
ストレステストソフトウェアの使用に関する補足説明:
腹部
apache Benchmark (ab) は、Apache が提供するストレス テスト ソフトウェアです。このストレス テスト ソフトウェアは、Apache サーバーのインストール時に含まれます。
使用: ./ab -n1000 -c100 http://www.baidu.com/
興味があるかもしれない記事: