You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Ghostscript优化PDF时出现内存占用过高崩溃问题

Ghostscript 9.54.0处理PDF内存异常升高问题解答

是否为预期行为

不属于预期行为。正常情况下处理单份200MB、270页的PDF文件,即便是使用/printer级别的输出配置,Ghostscript的内存占用通常也不会超过4GB,飙升至32GB以上属于异常情况。

异常原因

  • 你使用的Ghostscript 9.54.0是2021年的旧版本,该版本的pdfwrite输出驱动存在多个已知的内存泄漏缺陷,处理包含大量高清嵌入式图像、复杂矢量路径、透明层/叠印对象的PDF时,中间渲染缓存无法及时释放,会导致内存持续堆积。
  • -dPDFSETTINGS=/printer参数默认开启300DPI图像重采样、印刷标记保留、全字体子集化逻辑,会进一步放大内存泄漏的影响。如果原PDF存在结构损坏、畸形对象流的情况,异常内存占用的问题会更严重。

解决方案

  1. 优先升级Ghostscript到最新稳定版本:
    Arch Linux下直接执行命令即可完成升级:
sudo pacman -S ghostscript

9.55及之后的Ghostscript版本已修复绝大多数pdfwrite相关的内存泄漏问题,多数同类场景升级后内存占用可控制在2GB以内。
2. 若暂时无法升级,可添加缓存限制参数强制释放中间缓存,参考命令如下:

gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dPDFSETTINGS=/printer -dBufferSpace=1000000000 -dMaxBitmap=500000000 -sOUTPUTFILE=out.pdf input.pdf

其中-dBufferSpace=1000000000设置单次处理缓存上限为1GB,-dMaxBitmap=500000000限制位图缓存最大为500MB,避免缓存无限制堆积。
3. 若调整参数后仍存在问题,可先修复原PDF结构异常后再处理:

pdftk input.pdf output repaired.pdf

用修复后的repaired.pdf作为输入文件重新执行转换命令即可。

内容的提问来源于stack exchange,提问作者smon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 16:30:00