【发布时间】:2014-08-29 14:46:33
【问题描述】:
我遇到了 imagemagic 在我的服务器上执行命令所花费的时间问题。我还尝试将线程控制从 20(默认)设置为 1,但没有任何改进。
以下是我们在服务器上执行的一些命令和花费的时间。有什么办法可以减少这个执行时间?
-
/usr/bin/convert source1.jpeg -resize 4518x3013!输出.png
真正的 0m13.150s 用户 0m18.320s 系统 0m2.029s
-
/usr/bin/convert output.png -crop 2408x3010+1053+0 +repagecropped.png
真正的 0m5.978s 用户 0m5.043s 系统 0m0.881s
-
/usr/bin/convert destination.png - 在 564,564+2408+3010 'cropped.png' output.png 上绘制图像
真正的 0m10.085s 用户 0m11.160s 系统 0m1.710s
更新信息
identify -version 命令输出:
版本:ImageMagick 6.8.9-1 Q16 x86_64 2014-08-16 http://www.imagemagick.org
版权所有:版权所有 (c) 1999-2014 ImageMagick Studio LLC
特点:DPC OpenMP
代表: bzlib freetype gslib jng jpeg png ps tiff zlib
服务器配置:
操作系统版本为 centos 6
内存 32GB
source1.jpeg(link)
使用 -bench 5 执行的第一个命令并在输出下方返回。
性能[1]:5i 0.095ips 1.000e 90.970u 0:52.550
性能[2]:5i 0.104ips 0.522e 92.310u 0:48.110
性能[3]:5i 0.090ips 0.485e 93.420u 0:55.770
性能[4]:5i 0.086ips 0.474e 91.180u 0:58.230
性能[5]:5i 0.091ips 0.488e 94.850u 0:55.030
谢谢,
萨加尔
【问题讨论】:
-
Imagemagick 是如何安装在服务器上的?是否启用了 OpenMP 或 OpenCL 功能?请向我们展示
identify -version的输出,并在您的示例中使用-bench 10选项运行相同的命令。 -
版本:ImageMagick 6.8.9-1 Q16 x86_64 2014-08-16 imagemagick.org 版权所有:版权所有 (C) 1999-2014 ImageMagick Studio LLC 功能:DPC OpenMP 代表:bzlib freetype gslib jng jpeg png ps tiff zlib SERVER Os 版本为 centos 6 RAM: 32 GB
-
多次调用 imagemagick 会导致中间步骤的多次不必要的编码和解码。如果您编写一个小程序来一次完成所有操作,它应该会快得多。
-
为什么要将非整数大小传递给
-resize?当您不告诉我们原始图像有多大时,告诉我们裁剪/调整图像大小需要多长时间有什么意义?所有步骤都是一个更大的处理链的一部分吗?如果是这样,您最好使用更长的命令,一次完成所有操作 - 或使用 MPC - Magick Pixel Cache。你真的是从命令行运行的,还是你的系统实际上是用 Perl 或 PHP 编写的,或者可以使用 ImageMagick 绑定而不是分叉和执行的东西?你可以为中间文件制作一个 RAMdisk 吗? -
当我们不知道是 Raspberry Pi 还是 16 核服务器时,谁能说您的系统是否运行缓慢?可以降低质量设置吗? 8 位量化是否足够好(Q8 与 Q16)?
标签: linux imagemagick