libjpeg-turboがいいらしい
問題
libjpegより速いlibjpeg-turboというのがあるらしいですね。
答え
SIMD対応CPU(つまり最近のx86系CPUならほとんど?)だと、2~4倍高速化するらしい。
libjpeg-turboはlibjpeg互換で、評価されつつあり、いろんなOS(Ubuntu、Debian、Fedora)やアプリケーション(Chromeなど)で、libjpegよりlibjpeg-turbo使おうよという方向のようです。
試してみる
phpのGDでもlibjpeg-turboの恩恵を受けられるか試してみる。
今回試す環境はOSがCentOSなので、ここのRPMが使える。
libjpeg版phpとlibjpeg-turbo版phpをそれぞれコンパイル。
GDで、100枚のjpeg画像(いろんなサイズ)から、100枚の100px四方のサムネイル画像を作る処理にかかる時間を比較。
● ノーマルのlibjpeg
configure のコンパイルオプションで、いつもどおりの–with-jpeg-dir=/usr などでコンパイル。
# time /usr/local/php/5.3.6n/bin/php php.php real 0m3.596s user 0m3.428s ←処理時間 sys 0m0.092s
● turboのlibjpeg
configure のコンパイルオプションで、–with-jpeg-dir=/opt/libjpeg-turbo/ などで libjpeg-turbo を使うよう指定してコンパイル。
# time /usr/local/php/5.3.6/bin/php php.php real 0m1.592s user 0m1.487s ←処理時間 sys 0m0.057s
速くなりました。
今はこうして意図的にlibjpeg-turboを使うようにしないとそうならないですが、そのうちlibjpeg-turboが当たり前になるかもしれません。
コメント