phpパフォーマンス最適化
5331 ワード
きほんさいてきか
1変数を勝手にコピーしないでください.
PHPコードをよりきれいにするために、いくつかのPHP初心者(私を含む)は事前に定義された変数をより短い名前の変数にコピーします.実際には、このような結果はメモリ消費を2倍に増やし、プログラムをより遅くするだけです.考えてみてください.次の例では、ユーザーがテキスト入力ボックスに512 KBバイトの文字を悪意を持って挿入すると、1 MBのメモリが消費されます.
BAD:
GOOD:
2.文字列に一重引用符を使用
PHPエンジンでは、文字列変数を一重引用符と二重引用符でカプセル化できますが、これは大きな違いがあります!二重引用符の文字列を使用して、PHPエンジンに文字列の内容を最初に読み取り、その中の変数を検索し、変数に対応する値に変更するように伝えます.一般に文字列には変数がないため、二重引用符を使用するとパフォーマンスが低下します.二重引用符文字列ではなく文字列接続を使用することが望ましい.
BAD:
GOOD:
BAD:
GOOD:
3.echo関数を使用して文字列を出力する
echo()関数を使用して結果を印刷すると、より読みやすいほか、次の例では、より良いパフォーマンスが見られます.printは関数であり、echoはphpの内蔵構文であるため
BAD:
GOOD:
4.echoでコネクタを使用しない
多くのPHPプログラマー(私を含む)は、echoで複数の変数を出力する際に、文字列で先に接続する必要がなく、カンマで区切ることができることを知らない.以下の最初の例では、コネクタを使用すると性能に問題がある.PHPエンジンはまずすべての変数を接続し、出力する必要があるからだ.2つ目の例では、PHPエンジンは順番に出力されます.
BAD:
GOOD:
5.if/elseの代わりにswitch/caseを使用
単一の変数のみの判断では、if/else文ではなくswitch/case文を使用すると、よりパフォーマンスが向上し、コードの読み取りとメンテナンスが容易になります.
6「i=i+1の代わりにi+=1を用いる.c/c++の習慣に合致し、効率が高い」.
php.iniパラメータ最適化
1 PHPスクリプト実行時間max_execution_time = 30
このオプションは、PHPプログラムの最大実行時間を設定し、1つのPHPスクリプトが要求され、そのPHPスクリプトがmax_にある場合execution_time時間内に実行が完了しない場合、PHPは実行を継続せず、クライアントにタイムアウトエラーを直接返します.このオプションは、デフォルト設定の30秒を維持するために特別な必要はありません.PHPスクリプトの実行時間が本当に必要な場合は、この時間設定を適切に大きくすることができます.
2 PHPスクリプト処理メモリ占有memory_limit = 128M
このオプションは、PHPスクリプト処理で使用できる最大メモリを指定します.デフォルトは128 MBです.サーバーメモリが1 GB以上の場合は、このオプションを大きく設定できます(ただし、意味はありません.
3 PHPグローバル関数宣言検出:register_globals = Off
register_globalsが開くと、HTMLフォームからのリクエスト変数など、さまざまな変数がコードに注入されます.加えてPHPは変数を使用する前に初期化する必要がなく、安全でないコードを書きやすくします.例えばwww.test.com/index.php?abc=testこの設定を開くとphpファイルで$abcで直接試用して値を変更できます
4
高度なパフォーマンスの最適化
1 phpコンパイルキャッシュAPC
PHPスクリプトはバッファリングを行わない場合、呼び出すたびにコンパイルする必要があるため、PHPバッファ製品をインストールすると25~100%のパフォーマンスが向上します.
1変数を勝手にコピーしないでください.
PHPコードをよりきれいにするために、いくつかのPHP初心者(私を含む)は事前に定義された変数をより短い名前の変数にコピーします.実際には、このような結果はメモリ消費を2倍に増やし、プログラムをより遅くするだけです.考えてみてください.次の例では、ユーザーがテキスト入力ボックスに512 KBバイトの文字を悪意を持って挿入すると、1 MBのメモリが消費されます.
BAD:
$description = $_POST['description'];
echo $description;
GOOD:
echo $_POST['description'];
2.文字列に一重引用符を使用
PHPエンジンでは、文字列変数を一重引用符と二重引用符でカプセル化できますが、これは大きな違いがあります!二重引用符の文字列を使用して、PHPエンジンに文字列の内容を最初に読み取り、その中の変数を検索し、変数に対応する値に変更するように伝えます.一般に文字列には変数がないため、二重引用符を使用するとパフォーマンスが低下します.二重引用符文字列ではなく文字列接続を使用することが望ましい.
BAD:
$output = "This is a plain string";
GOOD:
$output = 'This is a plain string';
BAD:
$type = "mixed";
$output = "This is a $type string";
GOOD:
$type = 'mixed';
$output = 'This is a ' . $type .' string';
3.echo関数を使用して文字列を出力する
echo()関数を使用して結果を印刷すると、より読みやすいほか、次の例では、より良いパフォーマンスが見られます.printは関数であり、echoはphpの内蔵構文であるため
BAD:
print($myVariable);
GOOD:
echo $myVariable;
4.echoでコネクタを使用しない
多くのPHPプログラマー(私を含む)は、echoで複数の変数を出力する際に、文字列で先に接続する必要がなく、カンマで区切ることができることを知らない.以下の最初の例では、コネクタを使用すると性能に問題がある.PHPエンジンはまずすべての変数を接続し、出力する必要があるからだ.2つ目の例では、PHPエンジンは順番に出力されます.
BAD:
echo 'Hello, my name is' . $firstName . $lastName . ' and I live in ' . $city;
GOOD:
echo 'Hello, my name is' , $firstName , $lastName , ' and I live in ' , $city;
5.if/elseの代わりにswitch/caseを使用
単一の変数のみの判断では、if/else文ではなくswitch/case文を使用すると、よりパフォーマンスが向上し、コードの読み取りとメンテナンスが容易になります.
6「i=i+1の代わりにi+=1を用いる.c/c++の習慣に合致し、効率が高い」.
php.iniパラメータ最適化
1 PHPスクリプト実行時間max_execution_time = 30
このオプションは、PHPプログラムの最大実行時間を設定し、1つのPHPスクリプトが要求され、そのPHPスクリプトがmax_にある場合execution_time時間内に実行が完了しない場合、PHPは実行を継続せず、クライアントにタイムアウトエラーを直接返します.このオプションは、デフォルト設定の30秒を維持するために特別な必要はありません.PHPスクリプトの実行時間が本当に必要な場合は、この時間設定を適切に大きくすることができます.
2 PHPスクリプト処理メモリ占有memory_limit = 128M
このオプションは、PHPスクリプト処理で使用できる最大メモリを指定します.デフォルトは128 MBです.サーバーメモリが1 GB以上の場合は、このオプションを大きく設定できます(ただし、意味はありません.
3 PHPグローバル関数宣言検出:register_globals = Off
register_globalsが開くと、HTMLフォームからのリクエスト変数など、さまざまな変数がコードに注入されます.加えてPHPは変数を使用する前に初期化する必要がなく、安全でないコードを書きやすくします.例えばwww.test.com/index.php?abc=testこの設定を開くとphpファイルで$abcで直接試用して値を変更できます
4
高度なパフォーマンスの最適化
1 phpコンパイルキャッシュAPC
PHPスクリプトはバッファリングを行わない場合、呼び出すたびにコンパイルする必要があるため、PHPバッファ製品をインストールすると25~100%のパフォーマンスが向上します.