phpの性能改善(@)

Pocket

PHPのエラー回避演算子「@」をつけると、性能劣化に直結する。。
http://blog.myrss.jp/archives/2008/05/_php.html
結構使ってるので、まずいかも。。
実際に測定してみました。
測定にしようするのは、PEARのBenchMark。
http://tech.ironhearts.com/blog/archives/151
PHPのバージョンは5.2.6
測定内容は下記の通り。

  • 連想配列Aにキーがあれば、変数Bにセットする
  • 同じ処理を1000万回処理する

1.@で回避したロジック
$a = array();
$a['a’] = 'aaaa’;
if ( @$a['a’] ) $b = $a['a’];
▼測定結果
12.021020秒
2.配列に指定したキーの値がある場合
$a = array();
$a['a’] = 'aaaa’;
if ( $a['a’] ) $b = $a['a’];
▼測定結果
2.668419秒
3.issetで判定するロジック
$a = array();
$a['a’] = 'aaaa’;
if ( isset($a['a’]) ) $b = $a['a’];
▼測定結果
2.305626秒

結論

@を使わないロジックが圧倒的に高速!
issetを使った方が高速!
大変勉強になりましたm(_ _)m

IT/パソコンon,php

Posted by wpmaster