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

Java Spring集成PSPDFKit出现内存泄漏致应用崩溃求助

PSPDFKit内存泄漏排查求助:批量处理PDF后内存占用过高导致崩溃

问题现象

  • 不使用PSPDFKit直接操作文档时,内存表现完全正常
  • 仅在使用PSPDFKit库处理PDF时出现内存泄漏:批量渲染大量PDF文件后,内存占用飙升至2GB,最终导致应用崩溃
  • 初步推测问题出在与PSPDFKit的交互实现逻辑上

相关代码实现

核心处理方法

public byte[] annotate(byte[] doc) throws Exception {

        ByteArrayProvider pdfProvider = new ByteArrayProvider(doc);
        PdfDocument document = PdfDocument.open(pdfProvider);

        document.saveAs(inMemoryDataProvider,
        new DocumentSaveOptions.Builder().flattenAnnotations(true).forceSave(true).build());

        byte[] pdf = inMemoryDataProvider.read(inMemoryDataProvider.getSize(), 0);

        pdfProvider.release();
        inMemoryDataProvider.release();
        pdfProvider = null;

        return pdf;
 }

ByteArrayProvider类

public class ByteArrayProvider extends InputStreamDataProvider implements WritableDataProvider {
  private List<Byte> pdfData = new ArrayList<>();

  ByteArrayProvider(@NotNull final byte[] data) {
    this.release();
    for (byte value : data) {
      pdfData.add(value);
    }
  }

  @Override
  public void release() {
    pdfData.clear();
  }
}

InMemoryDataProvider类

public class InMemoryDataProvider implements WritableDataProvider {
  private final List<Byte> pdfData = new ArrayList<>();

  @Override
  public void release() {
    pdfData.clear();
  }
}

恳请各位技术同仁帮忙排查问题,万分感谢!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 03:32:36