Des conseils pour accélérer GhostScript?

j'ai un PDF de 100 pages qui est d'environ 50 MBs. J'exécute le script ci-dessous et cela prend environ 23 secondes par page. Le PDF est une numérisation d'un document papier.

gswin32.exe -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dCompatibilityLevel=1.3 
            -dPDFSETTINGS=/screen -sOutputFile=out4.pdf 09.pdf

y a-t-il quelque chose que je puisse faire pour accélérer ça? J'ai déterminé que l' -dPDFSettings=/screen est ce qui le rend si lent, mais je ne suis pas obtenir une bonne compression sans elle...

mise à jour: OK j'ai essayé de le mettre à jour à ce que j'ai ci-dessous. Suis-je à l'aide de la -c 30000000 setvmthreshold partie correctement?

gswin32.exe -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dCompatibilityLevel=1.3 
            -dPDFSETTINGS=/screen -dNumRenderingThreads=2 -sOutputFile=out7.pdf 
            -c 30000000 setvmthreshold -f 09.pdf
27
demandé sur Abe Miessler 2010-12-28 22:41:22

4 réponses

si vous êtes sur un système multicore, utilisez plusieurs cœurs CPU avec:

-dNumRenderingThreads=<number of cpus>

permettre d'utiliser jusqu'à 30 mo de RAM:

-c "30000000 setvmthreshold"

essayez de désactiver le collecteur d'ordures:

-dNOGC

pour plus de détails, voir Improving Performance

30
répondu ismail 2012-05-30 09:54:48

je suis à croquer ~300 page PDF sur un core i7 et a trouvé que l'ajout des options suivantes fournissait une accélération significative:

                            %-> comments to the right 
-dNumRenderingThreads=8     % increasing up to 64 didn't make much difference
-dBandHeight=100            % didn't matter much
-dBandBufferSpace=500000000 % (500MB)
-sBandListStorage=memory    % may or may not need to be set when gs is compiled
-dBufferSpace=1000000000    % (1GB)

-c 1000000000 setnvmthreshold -f la chose n'a pas fait beaucoup de différence pour moi, FWIW.

11
répondu wpgalle3 2012-09-26 07:30:29

vous ne dites pas quel CPU et quelle quantité de RAM votre ordinateur est équipé.

votre situation est la suivante:

  • un document numérisé en format PDF, d'environ 500 Ko par page sur avarage. Cela signifie que chaque page est essentiellement une image, en utilisant la résolution de numérisation (au moins 200 dpi, peut-être même 600 dpi).
  • vous le re-distillez avec Ghostscript, en utilisant -dPDFSETTINGS=/screen. Ce paramètre va faire pas mal de choses pour réduire la taille du fichier. Parmi les plus important sont:
    1. Re-échantillonner l'ensemble (en couleur ou en niveaux de gris des images à 72 dpi
    2. convertir toutes les couleurs en sRGB

ces deux opérations peuvent être très "coûteuses" en termes D'utilisation CPU et/ou RAM.

BTW, votre paramètre de -dCompatibilityLevel=1.3 n'est pas nécessaire; c'est déjà implicitement définie par -dPDFSETTINGS=/screen déjà.

essaye ceci:

gswin32.exe ^
 -o output.pdf ^
 -sDEVICE=pdfwrite ^
 -dPDFSETTINGS=/screen ^
 -dNumRenderingThreads=2 ^
 -dMaxPatternBitmap=1000000 ^
 -c "60000000 setvmthreshold" ^
 -f input.pdf

aussi, si vous êtes sur un système 64bit, essayez d'installer le plus récent 32bit Version de Ghostscript (9.00). Il fonctionne mieux que la version 64bit.

Permettez-moi de vous dire que downsampling une image de page scannée 600dpi à 72dpi ne prend généralement pas 23 secondes pour moi, mais moins d'un.

6
répondu Kurt Pfeifle 2010-12-28 23:43:06

j'ai peut-être complet de place ici, mais avez-vous donné un essai pour le format de fichier Djvu ? Il fonctionne comme un charme pour les documents numérisés en général (même s'il ya beaucoup d'images), et il donne des fichiers beaucoup mieux comprimés: je reçois un facteur de deux gain sans perte de taille en général sur B&W articles scientifiques.

1
répondu Vincent Fourmond 2013-10-12 23:01:02