これが、私がLAMPアプリケーションで常に設定しているいくつかの個人的な必須事項です。
-
Apache用にmod_deflateをインストールし、PHPのgzipハンドラーを使用しないでください。mod_deflateを使用すると、javascript / css / static htmlなどの静的コンテンツと通常の動的PHP出力を圧縮でき、コードで心配する必要が1つ少なくなります。
> -
.htaccessファイルには注意してください!アプリでディレクトリの.htaccessファイルを有効にすると、Apacheはファイルシステムを常にスキャンして.htaccessdirectivesを探す必要があります。ディレクティブをメイン構成またはvhost構成内に配置して、一度ロードすることをお勧めします。ディレクトリレベルのアクセスファイルをメインの構成ファイルに移動して削除できる場合はいつでも、ディスクアクセス時間を節約できます。
-
ある種の接続マネージャーを利用するようにアプリケーションのデータベースレイヤーを準備します(私はほとんどのアプリケーションでシングルトンを使用します)。行うのはそれほど難しいことではなく、アプリケーションが開くデータベース接続の数を減らすと、リソースを節約できます。
-
アプリケーションに大きな負荷がかかると思われる場合は、memcachedが奇跡を起こす可能性があります。コードを作成するときは、このことを覚えておいてください...おそらくいつか、オブジェクトをその場で作成する代わりに、memcachedからオブジェクトを取得することになります。少し先見の明があると、実装が簡単になります。
-
アプリが起動して実行されたら、MySQLの遅いクエリ時間を小さな数値に設定し、遅いクエリをログに記録して監視します。これにより、問題のクエリがどこから来ているかがわかり、問題になる前にクエリとインデックスを最適化できます。
-
パフォーマンスを大幅に調整するには、PHPをソースからコンパイルする必要があります。パッケージからインストールすると、使用しない可能性のある多くのライブラリがインストールされます。 PHP環境はApacheスレッドのすべてのインスタンスにロードされるため、50個のApacheスレッドが存在しない場合、追加のライブラリからの5MBのメモリオーバーヘッドでさえ、すぐに250MBの失われたメモリになります。 PHPを構築するときに使用するmystandard./configure行のリストを保持しています
ここ 、そして私はそれが私のアプリケーションのほとんどに適していると思います。欠点は、ライブラリが必要になった場合、それを取得するためにPHPを再コンパイルする必要があることです。コードを分析し、開発環境でテストして、必要なものがすべて揃っていることを確認します。 -
Javascriptを縮小します。
-
画像やビデオなどの静的コンテンツを非動的Webサーバーに移動する準備をしてください。画像や動画のURLが将来別のサーバーを指すように簡単に構成できるように、コードを記述します。 staticcontent用に最適化されたAwebサーバーは、動的コンテンツサーバーよりも数十倍または数百倍も高速に簡単にサービスを提供できます。
それは私が頭のてっぺんから考えることができるものです。 PHPのベストプラクティスを探し回ると、より高速でより優れたコードを作成するためのヒントもたくさん見つかります(echo
など)。 print
よりも高速です 。