Blogブログ
2014-12-27 ITのお話
php の処理性能が意外な所で悪化した件
珍しく技術的な記事を。
もう、年末ですねー。
そろそろ、お仕事も終わりにしたいのですが、今年はダメのようです。もう少し頑張れって、神様が。
先日来、ミリ秒オーダで処理を依頼されている案件がありまして。
意外な所で php の処理性能が悪化したので、備忘の為記録。もう、皆さんには当然でしょうか。
環境は AWS。web サーバは apache 2.2.15。php は 5.3.3。
以外と性能ネックになっていたのは以下の処理2つ。
1) microtime()
2500 回のループ処理で、4[ms]。
よくデータ処理時間の記録等で多用される可能性も高いですよね。要注意です。
しかも、システムリソースに逐次確認が入るらしく、cpu リソースを使いきらない処理となる模様。
#ほんとのところはよくわからない。
2) 参照先未定変数利用
例えば定義し忘れた変数を使う場合。
いきなり、「echo $hoge;」等として、$hoge がどこにも無いパターンも該当。こちらは1処理あたり、3[ms] 必要。
これだけだと「そらそーだよね」と思うのですが、ちょっとびっくりするのがこんな例。
==
// 関数定義
function hogeFunc($a1, $a2){
// nop
}
// 呼び出し側
hogeFunc($arg1); // < 2つ目の引数を指定していない
==
上記の呼び出し形式で、hogeFunc を呼び出すと、関数呼び出しは当然正常に動作しますが、関数呼び出しコストがかかる(今回の場合、3[ms])。
えー、お作法守っているのにー。要注意です。
とまぁ、あんまりお役に立たない情報ですかね。
お後がよろしいようで。