Memory is only freed after a GC run. You Need to invoke that explicitly.

> Am 24.03.2020 um 14:40 schrieb Hesham Gneady <heshamgne...@gmail.com>:
> 
> Hello,
> 
> 
> 
> I am trying to make a test to see the amount of memory consumed before and
> after loading a PDF file using PDFBox, and also the consumed memory after
> closing the PDF file, but I've noticed that the memory consumed after
> loading the PDF file is the same after closing the PDF file. It seems that i
> am doing something wrong, or that the PDF is still loaded in memory! . Here
> is the code I'm using:
> 
> 
> 
> private String docPath = "c:\400mb.pdf"
> 
> 
> 
> public void loadPDFDocument() {
> 
>             printHeap( "1. Heap before Loading PDF Doc:" );
> 
> 
> 
>             PDDocument document = null;
> 
>             try {
> 
>                           document = PDDocument.load(new File(docPath));
> 
>                           printHeap( "2. Heap after loading the PDF Doc:"
> );
> 
>             } catch (IOException e) {
> 
>                           throw new RuntimeException(e);
> 
>             } finally {
> 
>                           if (document != null) {
> 
>                                        try {
> 
>                                                     document.close();
> 
>                                                     printHeap( "3. Heap
> after closing the PDF Doc:" );
> 
>                                        } catch (IOException e) {
> 
>                                                     e.printStackTrace();
> 
>                                        }
> 
>                           }
> 
>             }
> 
> }
> 
> 
> 
> 
> 
> public void printHeap( String title ) {
> 
>             long heapSize = Runtime.getRuntime().totalMemory();
> 
>             long heapFreeSize = Runtime.getRuntime().freeMemory();
> 
> 
> 
>             System.out.println( title );
> 
>             System.out.println( "Current heap size: " + heapSize );
> 
>             System.out.println( "Free heap size: " + heapFreeSize );
> 
>             System.out.println( "--------------------------------" );
> 
> }
> 
> 
> 
> The output for this code when calling loadPDFDocument() is:
> 
> 1. Heap before Loading PDF Doc:
> 
> Current heap size: 265289728
> 
> Free heap size: 203194096
> 
> --------------------------------
> 
> 2. Heap after loading the PDF Doc:
> 
> Current heap size: 899153920
> 
> Free heap size: 343428432
> 
> --------------------------------
> 
> 3. Heap after closing the PDF Doc:
> 
> Current heap size: 899153920
> 
> Free heap size: 343428432
> 
> --------------------------------
> 
> 
> 
> Am I doing something wrong here?
> 
> 
> 
> 
> 
> Best regards,
> 
> Hesham 
> 
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org
For additional commands, e-mail: users-h...@pdfbox.apache.org

Reply via email to