在Java中使用IText进行内存管理

在Java中使用IText进行内存管理,itext,Itext,我使用IText生成PDF,并注意到我使用的服务器似乎随着时间的推移内存不足。我已经关闭了使用IText的功能,服务器看起来很好——因此我相当确定在我的IText实现中有某种东西导致了内存泄漏。以下是我的IText结构: Document document = new Document(PageSize.A4); file = new File("/tmp/Hotel-Fax-" + voucher.getVoucherID() + ".pdf"); PdfWriter writer = Pd

我使用IText生成PDF,并注意到我使用的服务器似乎随着时间的推移内存不足。我已经关闭了使用IText的功能,服务器看起来很好——因此我相当确定在我的IText实现中有某种东西导致了内存泄漏。以下是我的IText结构:

Document document = new Document(PageSize.A4);
file = new File("/tmp/Hotel-Fax-" + voucher.getVoucherID() + ".pdf");

PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(file));
writer.setStrictImageSequence(true);
document.open();

PdfContentByte cb = writer.getDirectContent();

//Some methods here which just create PDFPTables and add some text / images

cb.stroke();

document.close();

return file;

我想知道我的PdfWriter或PdfContentByte是否有某种方式可以保留内存,即使我已经关闭了文档,这意味着下次调用代码时,它只会创建新对象,内存最终会耗尽?

是否尝试使用探查器?除非在方法之外有对pdfWriter或contentbyte的引用,否则垃圾收集器应该处理它。你到底想渲染什么?你知道吗?我也有同样的问题。