Bonjour,
pour une application je suis en train d'effectuer un travail d'optimisation, je me sers de Netbeans 5.5 avec le profiler et la JDK employée est la 1.6. J'ai pu remarquer lors d'un test sur l'occupation mémoire que lorsque je chargeais des images mon application explosait apres 15-20 images. Petite précision le -Xmx est a 256Mo.
Une fois l'application chargée et "au repos" elle occupe environ 170Mo, il reste donc environ 80-90Mo de libre. Les images sont au format png et jpg, elles ont une taille moyenne de 100ko... soit sur disque environ 2Mo...et ces 20 images prennent dans la JVM plus de 100Mo...ouille.
Voici comment je chargeais mes images :
image_temp = ImageIO.read(new File(this.imagePath));
Toutefois j'ai recherché sur le forum et j'ai vu ce post : http://www.developpez.net/forums/sho...isation+images
j'ai donc changé mon code pour celui-ci :
image_temp = GraphicsUtil.toCompatibleImage(ImageIO.read(new File(this.imagePath)));
Le problème est toujours le même.
J'ai aussi pensé à utiliser des SoftRefeferences sur les images mais cette solution, complexe à mettre en oeuvre compte tenu de mon expérience et de la richesse de l'application, n'a pas abouti (~450 classes tout de même).
Bref je sollicite votre aide pour m'aider à diminuer l'espace mémoire occupée par les images dans la JVM.
D'avance merci et je suis prêt à donner des infos complémentaires voire des extraits de code.
[edit] J'édite pour poser une petite question : pour étudier plus en profondeur l'application, je souhaiterais voir à un instant t, pendant que mon application tourne, les variables instanciées et leur valeur. Quelle fonctionnalité (ou plugin) de Netbeans ou Eclipse me permettrait de faire cela s'il vous plait? [/edit]
Partager