在我的應用程序中,我必須在填充一些值後打開一個可編輯的PDF文件。爲了填充值,我使用庫中的PdfReader
,PdfStamper
& AcroFields
類。在填充值之後,我將所有這些對象都設爲null。如何使用iTextPDF和Qoppa打開PDF文件後釋放堆內存?
PDF文件顯示在使用Qoppa Library
類(如PDFDocument,QPDFNotesView)的活動中。我的應用程序使用的堆大小是一致的,直到我打開PDF。第一次打開PDF後,堆大小非常高。從第二次起,堆的大小逐漸增加,但略有增加。連續打開PDF 3或4次後,由於java.lang.OutOfMemoryError
而導致應用程序崩潰。
如果我只打開一次PDF,堆大小保持不變,直到我下次運行應用程序爲止。當我完成該活動時,我已將上述課程的所有對象設爲無效。
問題是這樣的:有一次我使用這些對象,即使我使用後廢棄
堆大小從來沒有下來。
我使用itextpdf-5.1.3.jar
和qoppapdf.jar
作爲私人圖書館。 任何人都可以幫我解決這個問題嗎?提前致謝...
你'關閉'PdfReader'對象嗎? –
不完全...我只是把它設爲NULL。現在,我在關閉它後檢查,但沒有影響... –
您是否使用探查器來確定問題是由iText還是Qoppa引起的?請注意,我記得一些內存問題在與5.1.3版本相比更新的字體相關的iText中得到修復。 –