PHPでコードを書く時に早く処理する方法(いろいろ検証中)
I AM NOT A PGとはtwitterのプロフィール等に書いてるんですがね;;
画像のwidthとheightの取得
元ネタ: http://www.w3support.net/index.php?db=so&id=90758
list($width,$height) = getimagesize(パス);
より
$data = exif_imagetype(パス); $width = $data['COMPUTED']['Width']; $height = $data['COMPUTED']['Height'];
のほうが早い。(だいたい20%くらい早い)
ただしこの方法は画像がJPEGの時にしか使えない。
Imagickつかうと激烈に遅い(そりゃそうだろう)
ファイルの存在の確認の有無
file_existsよりis_fileを使う。って語り尽されてますよね。いろいろなところで。
2倍くらいis_fileのほうが早い。
unserializeする前に一手間
unserializeした結果が空の配列があることが想定できるなら事前に文字列として比較して空の配列を代入したほうが圧倒的に早い。
unserializeは結構コスト高いので。
$obj = 'a:0:{}'; $array = $obj === 'a:0:{}' ? array() : unserialize($obj);
こう書くと。だいた3倍〜4倍くらい早い。空のシリアライズ化されたオブジェクトが多い場合にはかなり有効。もしくは最初っから決まった値が入っているオブジェクトを戻す時とかにいいかも。
どこかでネタで書いた覚えはあるけど。。。忘れた。