J'ai apporté les modifications suggérées à mon code mais j'ai toujours le même problème (mais après traitement de 170000 lignes et non plus 131000).
Voici les traces obtenues en utilisation l'objet MemoryMXBean :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| 15 août 2008 16:13:43 (MapAction.java:4707) - 0 lignes traitées
15 août 2008 16:13:43 (MapAction.java:4708) - init = 0(0K) used = 55079856(53788K) committed = 58400768(57032K) max = 66650112(65088K)
15 août 2008 16:13:43 (MapAction.java:4707) - 10000 lignes traitées
15 août 2008 16:13:43 (MapAction.java:4708) - init = 0(0K) used = 58171672(56808K) committed = 58400768(57032K) max = 66650112(65088K)
15 août 2008 16:13:44 (MapAction.java:4707) - 20000 lignes traitées
15 août 2008 16:13:44 (MapAction.java:4708) - init = 0(0K) used = 40838064(39880K) committed = 66650112(65088K) max = 66650112(65088K)
15 août 2008 16:13:44 (MapAction.java:4707) - 30000 lignes traitées
15 août 2008 16:13:44 (MapAction.java:4708) - init = 0(0K) used = 43502784(42483K) committed = 66650112(65088K) max = 66650112(65088K)
15 août 2008 16:13:44 (MapAction.java:4707) - 40000 lignes traitées
15 août 2008 16:13:44 (MapAction.java:4708) - init = 0(0K) used = 46317488(45231K) committed = 66650112(65088K) max = 66650112(65088K)
15 août 2008 16:13:44 (MapAction.java:4707) - 50000 lignes traitées
15 août 2008 16:13:44 (MapAction.java:4708) - init = 0(0K) used = 46071048(44991K) committed = 66650112(65088K) max = 66650112(65088K)
15 août 2008 16:13:44 (MapAction.java:4707) - 60000 lignes traitées
15 août 2008 16:13:44 (MapAction.java:4708) - init = 0(0K) used = 48883328(47737K) committed = 66650112(65088K) max = 66650112(65088K)
15 août 2008 16:13:44 (MapAction.java:4707) - 70000 lignes traitées
15 août 2008 16:13:44 (MapAction.java:4708) - init = 0(0K) used = 51601840(50392K) committed = 66650112(65088K) max = 66650112(65088K)
15 août 2008 16:13:44 (MapAction.java:4707) - 80000 lignes traitées
15 août 2008 16:13:44 (MapAction.java:4708) - init = 0(0K) used = 51359040(50155K) committed = 66650112(65088K) max = 66650112(65088K)
15 août 2008 16:13:44 (MapAction.java:4707) - 90000 lignes traitées
15 août 2008 16:13:44 (MapAction.java:4708) - init = 0(0K) used = 54387864(53113K) committed = 66650112(65088K) max = 66650112(65088K)
15 août 2008 16:13:44 (MapAction.java:4707) - 100000 lignes traitées
15 août 2008 16:13:44 (MapAction.java:4708) - init = 0(0K) used = 57203864(55863K) committed = 66650112(65088K) max = 66650112(65088K)
15 août 2008 16:13:44 (MapAction.java:4707) - 110000 lignes traitées
15 août 2008 16:13:44 (MapAction.java:4708) - init = 0(0K) used = 59746464(58346K) committed = 66650112(65088K) max = 66650112(65088K)
15 août 2008 16:13:44 (MapAction.java:4707) - 120000 lignes traitées
15 août 2008 16:13:44 (MapAction.java:4708) - init = 0(0K) used = 59438904(58045K) committed = 66650112(65088K) max = 66650112(65088K)
15 août 2008 16:13:44 (MapAction.java:4707) - 130000 lignes traitées
15 août 2008 16:13:44 (MapAction.java:4708) - init = 0(0K) used = 61937216(60485K) committed = 66650112(65088K) max = 66650112(65088K)
15 août 2008 16:13:44 (MapAction.java:4707) - 140000 lignes traitées
15 août 2008 16:13:44 (MapAction.java:4708) - init = 0(0K) used = 65754800(64213K) committed = 66650112(65088K) max = 66650112(65088K)
15 août 2008 16:13:45 (MapAction.java:4707) - 150000 lignes traitées
15 août 2008 16:13:45 (MapAction.java:4708) - init = 0(0K) used = 62571432(61104K) committed = 66650112(65088K) max = 66650112(65088K)
15 août 2008 16:13:45 (MapAction.java:4707) - 160000 lignes traitées
15 août 2008 16:13:45 (MapAction.java:4708) - init = 0(0K) used = 65071640(63546K) committed = 66650112(65088K) max = 66650112(65088K)
15 août 2008 16:13:46 (MapAction.java:4707) - 170000 lignes traitées
15 août 2008 16:13:46 (MapAction.java:4708) - init = 0(0K) used = 66532568(64973K) committed = 66650112(65088K) max = 66650112(65088K) |
Je ne comprends pas pourquoi il s'arrête à 64 Mo environ alors que les options d'allocation de mémoire sont les suivantes :
-J-Xms256m -J-Xmx512m -J-XX:PermSize=512m -J-XX:MaxPermSize=512m
PS : cette fois, l'erreur lancée est la suivante :
1 2
| java.lang.OutOfMemoryError: Java heap space
java.lang.Double.valueOf(Double.java:475) |
sur la ligne de code suivante :
currentdata.setX(Double.valueOf(st.nextToken()));
Y-a-t'il un problème sur cette ligne ?
Merci encore pour votre aide.
Partager