どのような状況でパフォーマンスの問題が発生する可能性がありますか:
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. ネットワークの安定性 ネットワークリクエストを最適化するにはどうすればよいですか? 1. タイムアウトを設定します a) 接続タイムアウト 200ms b) 読み取りタイムアウト 800ms c) 書き込みタイムアウト 500ms 2. シリアルリクエストを並列化します a)curl_multi_*() を使用します b) スウールエクステンションを使用する PHP インターフェース出力を圧縮 重複した計算をキャッシュする どのような状況で出力コンテンツをキャッシュする必要がありますか? 複数のリクエスト、コンテンツは変更されません 重複する時間ウィンドウのアイデア バイパスソリューション PHP 独自の分析と最適化を分析します: ツールを使用してテストする PHP パフォーマンスのボトルネックの解決策: オペコード キャッシュ (コード コンパイルの最後のステップでのキャッシュ) PHP 拡張機能 APC がオペコード キャッシュに使用されます ストレス テスト ソフトウェアの使用に関する補足説明: 腹部 -h apache Benchmark (ab) は、Apache によって提供されるストレス テスト ソフトウェアです。このストレス テスト ソフトウェアは、Apache サーバーのインストール時に組み込まれます。 -n リクエスト数 -c 同時実行 URL の数 ターゲット ストレス テスト アドレス