Nous essayons de rendre des images à partir de différents fichiers PDF, en utilisant la méthode de PDFRenderer renderImageWithDPI. Sur un PDF particulier, pour certaines pages, le rendu de bibliothèque a un comportement différent. Le rendu lui-même prend plus de temps que pour d'autres pages similaires, et la consommation de mémoire atteint des valeurs inhabituellement élevées: la mémoire consommée par le processus augmente d'environ 50 Mo toutes les 1 - 2 secondes, jusqu'à atteindre 5 Go de RAM consommé par le processus d'application dans renderImageWithDPI. Une fois que le thread termine renderImageWithDPI, la consommation de mémoire diminue de 1,5 à 2 Go presque immédiatement. En raison de la consommation élevée de mémoire, une exception Java Heap Space peut parfois être lancée.PDFBox 2 consommation de mémoire inhabituelle
Les pages sur lesquelles cela se produit ne sont pas visiblement différentes des autres, avec la même largeur, la même hauteur et la même taille de disque. Le rendu est effectué avec 250 DPI, avec ImageType RVB. En outre, l'application s'exécute avec le paramètre "-Dsun.java2d.cmm = sun.java2d.cmm.kcms.KcmsServiceProvider".
Est-ce une fuite de mémoire ou un comportement attendu? En outre, quelqu'un pourrait-il expliquer pourquoi certaines pages absorbent 2 Go de mémoire et prennent une minute à être rendues, alors que d'autres sont rendues en quelques secondes?
Pouvez-vous partager le pdf en question? – mkl
Pourriez-vous me donner votre adresse e-mail afin que je vous envoie un lien vers le disque Google? – Cristian
peut-être des ombrages, peut-être des motifs complexes ... S'il vous plaît envoyer le lien également à tilman à snafu dot de. –