是否可以减少 GhostScript 内存?
Is it possible to reduce GhostScript memory?
命令是这样的:
gs -q -dSAFER -dBATCH -dNOPAUSE -dPDFSETTINGS=/prepress -sDEVICE=pdfwrite -sOutputFile=output.pdf 1.pdf 2.pdf ... N.pdf
每个输入 PDF 包含许多图像,并且大多数图像在输入 PDF 之间共享。
命令运行成功。内存使用量递增,最终达到 3.7GB。
我尝试了各种 PDFSETTINGS:印前/打印机/电子书/屏幕。最大内存没有减少。
我想知道是否可以减少 GhostScript 内存使用量?更长的 CPU 处理时间是可以接受的。
$ gs -v
GPL Ghostscript 9.25 (2018-09-13)
Copyright (C) 2018 Artifex Software, Inc. All rights reserved.
不,您不能显着减少 pdfwrite 设备的内存使用量。
pdfwrite 设备在内存中保留了很多 的内容。这样做的结果是,对于页面数量巨大的文件,以及字体等资源较多的文件,有可能内存占用非常高。
您不能在 PDF 之间共享图像。每个 PDF 文件可能包含一个图像的副本,该图像是另一个 PDF 文件中图像的副本,但它们不会共享。
更改 PDFSETTINGS 不会产生任何实际影响;这主要影响图像的颜色 space 和分辨率,这些图像存储在磁盘上,而不是内存中。所以改变那些不会改变内存使用。
当然,您可能已经发现内存泄漏,但如果没有看到输入,我什至无法猜测。即使您确实提供了输入,除非有一些非常明显的东西,否则我不会尝试调试使用优于 3GB 内存的东西。
命令是这样的:
gs -q -dSAFER -dBATCH -dNOPAUSE -dPDFSETTINGS=/prepress -sDEVICE=pdfwrite -sOutputFile=output.pdf 1.pdf 2.pdf ... N.pdf
每个输入 PDF 包含许多图像,并且大多数图像在输入 PDF 之间共享。
命令运行成功。内存使用量递增,最终达到 3.7GB。 我尝试了各种 PDFSETTINGS:印前/打印机/电子书/屏幕。最大内存没有减少。
我想知道是否可以减少 GhostScript 内存使用量?更长的 CPU 处理时间是可以接受的。
$ gs -v GPL Ghostscript 9.25 (2018-09-13) Copyright (C) 2018 Artifex Software, Inc. All rights reserved.
不,您不能显着减少 pdfwrite 设备的内存使用量。
pdfwrite 设备在内存中保留了很多 的内容。这样做的结果是,对于页面数量巨大的文件,以及字体等资源较多的文件,有可能内存占用非常高。
您不能在 PDF 之间共享图像。每个 PDF 文件可能包含一个图像的副本,该图像是另一个 PDF 文件中图像的副本,但它们不会共享。
更改 PDFSETTINGS 不会产生任何实际影响;这主要影响图像的颜色 space 和分辨率,这些图像存储在磁盘上,而不是内存中。所以改变那些不会改变内存使用。
当然,您可能已经发现内存泄漏,但如果没有看到输入,我什至无法猜测。即使您确实提供了输入,除非有一些非常明显的东西,否则我不会尝试调试使用优于 3GB 内存的东西。