Bonjour,
j'ai une HashMap sérialisée dans un fichier, qui fait environ 30Mo.
Avec Runtime.getRuntime().totalMemory();, j'ai vérifié que la HashMap ne consomme pas trop en mémoire :
Total memory : 529465344
Loading...
583032 elements loaded.
Total memory : 517013504
Quelque chose comme 12Mo, donc...
Pourtant, je dois lancer mon programme avec l' option -Xmx512m, avec 256 ou moins j'ai une erreur :
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.io.ObjectInputStream$HandleTable.grow(ObjectInputStream.java:3421)
at java.io.ObjectInputStream$HandleTable.assign(ObjectInputStream.java:3227)
at java.io.ObjectInputStream.readString(ObjectInputStream.java:1610)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1320)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at java.util.HashMap.readObject(HashMap.java:1029)
Et ceci même si je crée un programme qui ne fait qu'ouvrir cette HashMap...
Avez-vous une idée d'où ça peut venir ?
Merci d'avance
Partager