簡単な 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() はログアウトできない可能性があります)
最適化ポイント: 正規表現の使用をできるだけ少なくする
状況の説明: 式のバックトラッキングのオーバーヘッドが大きい、「ダイヤモンドなしでセラミック作業を行うな」
提案: 文字列処理関数を使用して同じロジックを実装します
最適化ポイント: ループ内での操作の実行を避ける
状況の説明: 内の計算式ループは二重にカウントされます
$str="hello world";
//strlen($str) は外側に配置されます
for($i=0;$i //何かをします } ?> 最適化ポイント: コンピューティング集約型ビジネスの削減 状況の説明: PHP は集約型コンピューティング シナリオには適していません なぜですか? php の言語特性により、php は大規模なデータの計算には適さないと判断されます php は、Web サーバーとバックエンド サービスの接続、UI プレゼンテーションに適したシナリオに適しています 最適化ポイント: キー値として必ず引用符で囲まれた文字列を使用してください 状況の説明: PHP は引用符なしのキー値を定数として扱うため、定数を見つけるコストが発生します 推奨: キー値として引用符を厳密に使用してください ---------------------- --------- --------- (PHP 周辺問題のパフォーマンス最適化) - 実行環境、ファイルストレージ、データベース、キャッシュ、ネットワーク ファイル操作の削減 一般的な PHP シナリオにおけるオーバーヘッドの順序: ディスクの読み取りと書き込み、読み取りと書き込みデータベース、メモリの読み取りと書き込み、ネットワーク データの読み取りと書き込み メモリの読み取りと書き込み
ネットワークリクエストの最適化
ネットワークリクエストの落とし穴: 1. 相手のインターフェースの不確実要素 2. -n リクエスト数 -c 同時実行数 URL ターゲット ストレス テスト アドレス