SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 社員募集 ...

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が当たり前になるかもしれません。

関連するメモ

コメント