2012-02-06 3 views
2

Je suis confronté à un gros problème avec PDFBox: J'ai essayé de charger un fichier de 10 Mo (test.pdf) et moi avions besoin de 400 Mo pour le charger sur la JVM: Voici l'exemple de code:PDFBox OutOfMemory

final File mainFile = new File(
      "C:/test.pdf"); 
    System.out.println("File size: " + mainFile.length()); 
    try { 
     PDDocument doc = PDDocument.load(mainFile); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    System.out.println("Used Memory: " + (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory())); 
} 

Est-ce normal?

+0

peut-être était-il 40MB? 400 est beaucoup trop si c'est la seule chose que vous faites. – Eugene

+0

oh ouais. Juste ça. Je vous imprime tout le code – brianbro

+0

À tout le moins, vous devez fournir la version PDFBox que vous utilisez, comment vous compilez votre exemple, quel système d'exploitation vous utilisez, etc. – ipavlic

Répondre

2

Non, ce n'est pas normal.

Je remarque que vous n'avez pas fermé le document (obligatoire, veuillez lire le documentation). Peut-être que cela accumulé dans plusieurs courses. Vous ne mentionnez pas non plus l'utilisation de la mémoire avant de charger le document.

+0

Quelques conseils peuvent être trouvés ici: https://pdfbox.apache.org/2.0/faq.html#outofmemoryrrror –