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
|