PHP プログラムの最適化
PHP プログラムの最適化には、PHP コードの最適化、セッション メカニズムの最適化、キャッシュ ミドルウェアの使用、および PHP コード キャッシュ システム (主に APC アクセラレーション) に焦点を当てた多くの内容があります。
そして、十分なスキルを習得するために習得されたすべてのスキルを十分に習得しました。PHPコードを最適化してPHPコードを最適化できます。プログラムのコーディング作業が完了したら、通常、上級プログラマーにコードをレビューしてもらい、プログラムの品質を評価し、最適化が必要な点を特定します。このプロセスはコード レビューとも呼ばれます。以下では、いくつかの一般的な PHP プログラミング手法と、コード レビュー プロセスに関係する可能性のあるいくつかの最適化原則を紹介します。
1. 最新の PHP バージョンにアップグレードします
2. include と require を減らす
3. グローバル変数の代わりにローカル変数を使用します
PHP には非常に豊富な関数ライブラリがあり、同じ関数を以下を使用して完成させることができますさまざまな機能。ただし、機能によって動作効率も異なりますので、よく使用する機能を比較してみましょう。
ただし、ロジックがあまり複雑でない一部のプログラムでは、各コードの効果が最適化はあまり明らかではないかもしれませんが、良いプログラミングの習慣を身につけることが非常に重要であり、それが普通のプログラマーと上級プログラマーの違いでもあります。上記がすべてのPHPプログラミングスキルではなく、これらのスキルの習得は一朝一夕で完了するものではなく、学習と実践の過程で継続的にまとめ、蓄積することで初めてプログラミング能力を向上させることができます。次のレベルへ。
PHP に最適化されたセッションメカニズム
簡単に言えば、Session は各ユーザーに付属するグローバル変数のようなもので、ユーザーがサーバーに保存する必要がある情報を保存するために使用されます。実際、Session セッションの機能はシステム設定ファイル php.ini で設定できます。もちろん、ini_set 関数 (設定を取得するための ini_get) を使用してプログラム的に設定することもできます。
auto_start (session.auto_start: 自動的に有効にするかどうか) を有効にすることは、通常は推奨されません。セッションの作成にはシステム リソースが必要になるためです。通常は、必要な場合に session_start 関数を使用してセッション関数を有効にするだけです。セッションを使用します。次に、セッションの有効期間はシステムの状況に応じて決定する必要があります。長すぎる場合は、セッション データが多すぎるために負荷の問題が発生する可能性があり、短すぎる場合は、セッションの作成が頻繁すぎるため、パフォーマンスの問題が発生する可能性もあります。システムのデフォルトの有効時間は 1440 秒、つまり 24 分です。実際のプロジェクトでは、通常、この時間を 1 ~ 8 時間に設定します。 PHP についても注意してください Session で使用されるデフォルトの保存方法は、php.ini で session.save_handle 選択行を通じて必要な保存方法を選択できますが、実際にはファイル保存方法の使用は比較的非効率であり、システム アーキテクチャの拡張には役立ちません。プロジェクトでは、セッション コールバック インターフェイスは、セッションのロジックを制御するために session_set_save_handler メソッドを通じて設定されることがよくあります。これには、データベース、分散キャッシュ サーバーなどが含まれます。
PHP セッション最適化のアイデア。まず、セッションが作成されるたびにリソースが消費されます。グローバル設定ファイルで session_start メソッドを使用しないでください。次に、サーバーがセッション ID を取得できない場合は、新しいセッション ID を作成するため、すべてのセッション要求で必ずセッション ID を取得する必要があります。さらに、ストレージ方法を選択するときは、キャッシュ サーバー Memcache(d)、Redis などの高速ストレージ メディアを使用するようにしてください。
キャッシュミドルウェアの使用
キャッシュミドルウェアの出現は、クエリ要件のほとんどを処理するためにデータベースを置き換えてクエリされた情報をサーバーメモリにキャッシュし、それによってデータ負荷を軽減することです。プレッシャー。現在、業界でよく使われているキャッシュミドルウェアはMemcacheとRedisです(環境構築や使い方、両者の違いについてはネットワークリソースを検索していただくとして、ここでは詳しく紹介しません)。実際のプロジェクトで使用される効果に応じて、キャッシュ ミドルウェアは通常、サーバーのクエリ速度を大幅に向上させることができます。さらに、Redis キャッシュは書き込みキューとしても使用できます。つまり、データは最初に Redis キャッシュに書き込まれ、その後データに転送されます。
APC を使用して高速化
ネットワークアプリケーションの継続的な開発に伴い、ロジックコードはますます複雑になり、フレームワークに巨大なクラスライブラリコードを導入することによるリソースの消費も増加していますしたがって、再びオンラインにアクセスすると、比較的高くなります。コードの実行を高速化するために、コードレベルのキャッシュを使用する必要もあります。
APC (代替 PHP キャッシュ、PHP コード キャッシュ システム) は、PHP 中間コード (オペコード) をキャッシュして最適化することで、PHP の実行効率を向上させる、非常に優れた PHP コード キャッシュ ソリューションです。
注: APC と同じレベルの無料の PHP コード キャッシュ テクノロジーには、eAccelerator と XCache が含まれます (インストールと違い: http://blog.csdn.net/mossader/article/details/6343354)
データ送信を最適化する
通信プロトコルの一般的な設計原則の中で、汎用性と間接性が最も重要です。プログラム アプリケーション プロトコルの基礎として JSON プロトコルを選択すること自体がシステムの最適化です。
2. gzip 圧縮を使用します
サーバーからクライアントへのデータのプロセスは複雑なネットワークを通過する必要があるため、ネットワーク送信に影響を与える主な要因が 2 つあります。1 つはネットワーク品質です。 、もう 2 つ。データ自体のサイズ。 HTTP プロトコルの場合、gzip は現在主流の圧縮アルゴリズムの 1 つであり、ほとんどの HTTP サーバーがこの圧縮アルゴリズムをサポートしています (Apche および Nginx 用の gzip 圧縮関数モジュールの構成については、ネットワーク リソースを自分で見つけてください)。
注: この記事は、第 9 章「ベストのサーバー側」からの抜粋です。 Android と PHP の実践開発」の最適化 (削除あり)
以上、PHP プログラムの最適化についてさまざまな側面を含めて紹介しましたが、PHP チュートリアルに興味のある友人に役立つことを願っています。