'convert'ing * .gif para file.pdf trava / congela o sistema

1

Tenho 415 arquivos gif em um diretório e tentando fazer um único pdf deles usando o seguinte comando:

convert /path/to/*.gif file.pdf

Mas isso causa a suspensão / congelamento de todo o sistema. Em outras palavras, torna o sistema muito mais lento e eu tenho que Ctrl + c (matar) o processo (que também consome algum tempo para parar).

Como enfrento esse problema / problema? Existe algum mecanismo melhor / alternativo (comando / programa / trabalho em volta) para executar esta tarefa?

Nota: Estou trabalhando em meu PC Desktop simples (processador P4 de 3 + 3 GHz e 1GB og de RAM) com o Trisquel GNU / Linux 7.0 LTS. O programa convert é membro do conjunto de ferramentas ImageMagick .

    
por Pandya 21.11.2016 / 08:08

2 respostas

2

Você provavelmente está usando muito ram e causando troca. Um teste simples usando /usr/bin/time -v na frente do comando quando executado em 5 arquivos e novamente em 10 arquivos mostrará que Maximum resident set size é aproximadamente o dobro de arquivos duplicados.

Então, ao invés de fazê-las todas de uma vez, converta-as uma de cada vez, ou diga dez de cada vez, depois concatencie os pdfs. Levará mais tempo, mas menos memória.

rm -f /tmp/file.pdf
for i in *.gif
do convert "$i" /tmp/a.pdf
   if [ -s /tmp/file.pdf ]
   then gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=/tmp/b.pdf /tmp/file.pdf /tmp/a.pdf
   else mv /tmp/a.pdf /tmp/b.pdf
   fi
   mv /tmp/b.pdf /tmp/file.pdf
done
    
por 21.11.2016 / 15:08
0

Use cpulimit e ionice e nice:

nice -n19 ionice -c3 cpulimit -l 20 -- convert /path/to/*.gif file.pdf
    
por 21.11.2016 / 08:18