19 марта 2009 г.

Большой расход памяти imagemagick!

Никак не могу разобраться, как это происходит. И из-за чего!

Первоначальная задача была конвертировать около 200 jpeg файлов в pdf. Использовал imagemagick:

convert *.jpg converted.pdf

При этом convert затратил память около 2-х Гб и повесил комп (т.к. у меня оперативка + swap = 2 Гб). При этом общий объем изображений не превышает 50 Мб. Думал сначала, что вся проблема связанна именно с конвертацией в pdf. Но аналогичная ситуация возникает при попытке конвертирования достаточно большого количества любых файлов.

При конвертировании 20 jpg файлов convert занимает 400 Мб! Это вообще нормально?

6 комментариев:

Timon комментирует...

convert -limit memory 32mb -limit map 64mb *.JPG converted.pdf

bappoy комментирует...

попробуй в цикле запускать:
for i in *jpg; do convert $i $i.pdf; done

andrey i. mavlyanov комментирует...

не работай сразу со всем изображениями.

вызывай конверт для каждого в отдельности

vanoc комментирует...

проверил только что на 20 и 35 фотографиях. никакого всплеска потребления оперативы не заметил. проверял на ubuntu 8.10

vanoc комментирует...

convert 20 фоток заняло 5 мб оперативы.странно что у тебя 400 кушает.

puzan комментирует...

2Timon
Таким методом все равно подъедает память, но медленней. А в какой-то момент сообщает об ошибке что не хватает памяти.

2bappoy
2andrey i. mavlyanov
Собственно так и делал, создавал куча pdf-файлов, а потом собирал их с помощью pdftk. Так не более 20 Мб использует.

2vanoc
У меня gentoo. Есть подозрение, что это происходит из-за какой-то криво собранной библиотеки, но пока такую не нашел.