【问题标题】:com.qoppa.notes.QPDFNotesView object not releasing heap even after calling "object.releaseDocument()"com.qoppa.notes.QPDFNotesView 对象即使在调用“object.releaseDocument()”后也不会释放堆
【发布时间】:2015-09-08 10:36:10
【问题描述】:
  • 使用 Qoppa 库打开 Pdf,特别是在调试时,我可以监控堆内存使用情况,在下面执行的行中变得非常高..

    com.qoppa.notes.QPDFNotesView viewer = new QPDFNotesView(this);

  • 在出去我的活动之前,我正在打电话

    viewer.releaseDocument();

  • 即使这样,堆内存也不会减少。

注意:也尝试使用从 qoppa 下载的最新 qoppapdf.jar

【问题讨论】:

  • 我没有看到 qoppa 和 iText 之间的链接。 iText 有什么问题?
  • 我的意思是,pdf acrofields 是使用 iText 填充的,仅供参考。之后我尝试使用 Qoppa 打开。
  • 好的,Qoppa 对此有何评论?听听我们是否可以在 iText 代码中做一些事情来防止这种情况会很有趣(但表单填充真的很基本:没有什么会导致内存泄漏)。

标签: android pdf-generation


【解决方案1】:

当调用 releaseDocument() 时,qPDF Toolkit 会释放它持有的所有对象。

但是,Java 在收集未使用的对象时使用“惰性内存管理”,垃圾收集器通常会等到内存耗尽后再回收已释放的内存。没有办法强制这种情况发生,完全取决于 Java JVM 实现来决定何时这样做。

查看器使用的内存和对象在调用 releaseDocument() 时被释放,但它可能直到一段时间后才会显示在堆上,或者可能会在加载新文档时被释放。

【讨论】:

    猜你喜欢
    • 2018-02-20
    • 2016-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-26
    • 1970-01-01
    • 2017-06-07
    • 1970-01-01
    相关资源
    最近更新 更多