gmagick图片处理优化打包

发布: 2014-02-14 10:30

在做网站的图片处理项目时,碰到系统自带的graphicmagick库与效率比较低,
导致服务器负载偶尔达到 300-500的值,这种状态服务基本不用了。
而这个图片处理系统设计的是实时图片处理,前端加varnish缓存的模式。

一旦达到这个范围的负载Load,整个服务基本处于不可用状态,
大概有70-80%的图片处理请求得不到处理,在页面上显示白页了。

这是由于在默认情况下,全部使用CPU的x86指令处理图片,不但耗CPU,而且处理速度还慢。

经过一些理论研究与摸索测试,找到了一个能够大幅优化图片处理效率的方式。

这个优化方式,着重在三点,
1)使用新版本的包,
2)使用CPU的针对图片处理的高级汇编指令
3) 使用openmp并行处理


这里主要使用了libjpeg-turbo这个处理库,这个库尽可能使用了硬件支持的专门处理图片视频的CPU扩展指令,所以效率非常高。

据其官方测试这个库处理图片的效率是系统默认libjpeg的3-5倍。

根据自己的实现项目测试,这个优化效果也非常明显。

关于这个库的详细说明详见其官方网站。

下面把这个方式的打包步骤列出如下,

相关包,libpng,giflib,libjpeg-turbo,gmagick
打包依赖包,nasm

编译命令:(prefix需替换成实际部署)
nasm-2.10.07
./configure --prefix=/usr/local/graphicsmagick/

giflib-5.0.4和libpng-1.5.15
CFLAGS="-mfpmath=sse -frename-registers -O3 -ftree-vectorize " ./configure --prefix=/usr/local/graphicsmagick

libjpeg-turbo, NASM开启SIMD指令,
NASM=/usr/local/graphicsmagick/bin/nasm CFLAGS="-mfpmath=sse -frename-registers -O3 -ftree-vectorize " ./configure --prefix=/usr/local/graphicsmagick --with-jpeg7 --with-jpeg8

graphicsaimgck-1.3.18:
CFLAGS="-I/usr/local/graphicsmagick/include -mfpmath=sse -frename-registers -O3 -ftree-vectorize -DJPEG_DEFAULT=libjpeg-turbo" LDFLAGS="-L/usr/local/graphicsmagick/lib" ./configure --prefix=/usr/local/graphicsmagick --enable-shared=yes --enable-openmp


软件源代码包下载地址:
http://downloads.sourceforge.net/project/giflib/giflib-5.x/giflib-5.0.4.tar.bz2?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fgiflib%2Ffiles%2Fgiflib-5.x%2F&ts=1366168559&use_mirror=jaist


http://downloads.sourceforge.net/project/libjpeg-turbo/1.2.1/libjpeg-turbo-1.2.1.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Flibjpeg-turbo%2Ffiles%2F1.2.1%2F&ts=1366169817&use_mirror=jaist


http://downloads.sourceforge.net/project/libpng/libpng15/1.5.15/libpng-1.5.15.tar.bz2?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Flibpng%2Ffiles%2Flibpng15%2F1.5.15%2F&ts=1366170362&use_mirror=jaist


http://downloads.sourceforge.net/project/graphicsmagick/graphicsmagick/1.3.18/GraphicsMagick-1.3.18.tar.bz2?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fgraphicsmagick%2Ffiles%2Fgraphicsmagick%2F1.3.18%2F&ts=1366170417&use_mirror=jaist


http://www.nasm.us/pub/nasm/releasebuilds/2.10.07/nasm-2.10.07.tar.bz2




原文: http://qtchina.tk/?q=node/789

Powered by zexport