Per*_*erb 1 linux pdf multithreading 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
Run Code Online (Sandbox Code Playgroud)
我需要加速这一点,因为它需要大约60秒,我需要动态.有什么建议?
pdfwrite设备不使用线程(它很难这样做).线索的名称为'NumRenderingThreads',pdfwrite不呈现.
由于它不渲染BandHeight,BandBufferSpace,BandListStorage和BufferSpace也没有效果.(你还指定了-q两次)
请注意,Ghostscript和pdfwrite设备不会"操纵"PDF输入,不能组合,连接或类似.它的作用是解释所有输入,创建一组图形基元,然后将这些基元重新组合成一个全新的PDF输出文件.新输出文件与任何输入都没有任何共同之处,我们的目标是视觉外观应该相同.虽然我们确实从输入处理了许多非制作对象,但这些对象非常重要.
很明显,这是一个比将PDF文件的内容视为一系列可重新排列的构建块更复杂的过程,这就是为什么它的速度较慢.说实话,读取,解释,在1分钟内重写1000个文件对我来说似乎相当快.