JDK 8.0
Best regards, Hesham -------------------------------------------------------------------------------------------------- Included Message: What jdk are you using? Tilman Am 24.03.2020 um 17:15 schrieb Hesham Gneady: > Oh! ... That's absolutely right. I am now getting right results: > > 1. Heap before Loading PDF Doc: > Current heap size: 265289728 > Free heap size: 212918368 > -------------------------------- > 2. Heap after loading the PDF Doc: > Current heap size: 908066816 > Free heap size: 342499608 > -------------------------------- > 3. Heap after closing the PDF Doc: > Current heap size: 908066816 > Free heap size: 849820016 > -------------------------------- > > > Best regards, > Hesham > > > -----Original Message----- > > 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 > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org > For additional commands, e-mail: users-h...@pdfbox.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org For additional commands, e-mail: users-h...@pdfbox.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org For additional commands, e-mail: users-h...@pdfbox.apache.org