Fuite mémoire dans java.text.DecimalFormat de GnuClasspath
Aujourd’hui, un collègue me montre du code qui utilise java.text.DecimalFormat de GnuClasspath, la JCL du projet GNU, et qui plante avec une java.lang.OutOfMemoryError.
L’objectif est de formater un double suivant un nombre de décimal, ce que fait très bien la classe java.text.DecimalFormat.
Voici la stacktrace complète de mon code de test :
Exception in thread "main" java.lang.OutOfMemoryError at java.util.ArrayList.ensureCapacity(ArrayList.java:176) at java.util.ArrayList.add(ArrayList.java:340) at java.text.DecimalFormat.addAttribute(DecimalFormat.java:2236) at java.text.DecimalFormat.handleFractionalPart(DecimalFormat.java:2074) at java.text.DecimalFormat.formatInternal(DecimalFormat.java:1942) at java.text.DecimalFormat.format(DecimalFormat.java:387) at java.text.NumberFormat.format(NumberFormat.java:818) at trash.MyTrash.testNewDecimal(MyTrash.java:34) at trash.MyTrash.(MyTrash.java:18) at trash.MyTrash.main(MyTrash.java:8)
Commençons les investigations de java.text.DecimalFormat.


La JCL, ça pourrait être le Judo Club de Longvic en Bourgogne mais en fait cela signifie 
Pour mes tests de performances, j’ai souvent besoin de calculer le temps d’exécution d’une méthode afin de valider ou non les optimisations.
Voici un article d’IBM du 2 juin 2011 sur le développement d’application Java temps réel
envoi en cours...