Ghostscript结合PDfs和多线程/核心

时间:2013-08-20 02:53:53

标签: linux multithreading pdf ghostscript

我知道有几个问题和线索有类似的东西,但没有一个对我有用。 我正在尝试将~1000个pdf文件合二为一。我尝试了几个工具,但只有gs(ghostscript)进行了适当的压缩。 我的问题是,多线程无法工作/我有24个核心并且喜欢使用例如8为任务,但top告诉我它仍然只使用一个。我的命令:

gs -q -dNOPAUSE -dNOPROMPT -q -dBATCH -dNumRenderingThreads=8 -dBandHeight=100 -dBandBufferSpace=500000000 -sBandListStorage=memory -dBufferSpace=1000000000 -sDEVICE=pdfwrite -sOutputFile=combined_gs.pdf sourcefiles/*.pdf

我需要加速这一点,因为它需要大约60秒,我需要动态。 有什么建议吗?

1 个答案:

答案 0 :(得分:8)

pdfwrite设备不使用线程(它很难这样做)。线索的名称为'NumRenderingThreads',pdfwrite不会呈现

由于它没有渲染BandHeight,BandBufferSpace,BandListStorage和BufferSpace也没有效果。 (你还指定了-q两次)

请注意,Ghostscript和pdfwrite设备不会“操纵”PDF输入,不能组合,连接或类似。它的作用是解释所有输入,创建一组图形基元,然后将这些基元重新组合成一个全新的PDF输出文件。新输出文​​件与任何输入都没有任何共同之处,我们的目标是视觉外观应该相同。虽然我们确实从输入中处理了许多非制作对象,但这些对象非常重要。

很明显,这是一个比将PDF文件的内容视为一系列可重新排列的构建块更复杂的过程,这就是为什么它的速度较慢。老实说,读取,解释,在1分钟内重写1000个文件对我来说似乎很快。