天天看点

ImageMagick内存占用过高被杀掉

执行命令

# convert -density 300 -quality 100 test.pdf out.png

已杀死      

很郁闷

解决方式一

重新重新编译ImageMagick最新版,增加参数: ​

​–disable-openmp​

​, 不使用多线程

查看版本

$ convert -version
Features:openMP      

在页面查找下载地址:

​​

​​

​​​​

我下载是版本是:ImageMagick-7.0.8-24

安装步骤

# Linux源码下载
wget https://imagemagick.org/download/ImageMagick.tar.gz

# 解压
tar -xvzf ImageMagick.tar.gz

# 新建安装文件路径
mkdir ImageMagick-7.0.8

# 进入源码
cd ImageMagick-7.0.8-24

# 设置
./configure  --prefix=/home/ImageMagick-7.0.8 --enable-shared --enable-threads=posix --with-system-zlib --enable-__cxa_atexit --disable-openmp

# 编译安装
make & make install

# 添加软链接
ln -s /home/ImageMagick-7.0.8/bin/convert /usr/bin/convert      

再次查看版本

# convert -version

Version: ImageMagick 7.0.8-23 Q16 x86_64 2019-01-07 https://imagemagick.org
Copyright: © 1999-2019 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI
Delegates (built-in): jng jpeg lzma png xml zlib      

不过好像没啥用,还是会出现​

​已杀死​

​的提示

参考:

​​ImageMagick 解决多线程(openMP)运行时导致CPU暴增到100%的方法​​

解决方式二

设置运行参数

# convert -limit memory 2mb -limit map 2mb -density 300 -quality 100 test.pdf out.png      

这个方式基本可以解决问题,缺点就是速度较慢,和原先比较耗时*3

参考:

​​​​https://github.com/ImageMagick/ImageMagick/issues/327​​​​