天天看點

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​​​​