outofmemory
OutOfMemoryError: unable to create new native thread
L'OutOfMemory est une des erreurs les plus célèbres de la JVM. Comme son nom l'indique, elle se produit quand la JVM n'a plus de mémoire. J'ai dernièrement rencontré cette erreur et cela m'a permis de découvrir les méandres peu connues de la mémoire de la JVM.
Tout d'abord petit rappel sur la répartition de la mémoire de la JVM:En savoir plus
OutOfMemoryError : les outils de diagnostic
Les erreurs liées à un manque de mémoire sont une des hantise du développeur Java. De deux choses l'une, soit une augmentation du volume de mémoire allouée résout le problème définitivement, soit cela ne fait que retarder l'échéance et c'est là que les choses se corsent!
Le bon vieux débogueur ne peut pas nous aider pour ce genre de diganostic, il ne produit pas d'informations utiles concernant l'utilisation réelle de la mémoire. Il est bien sûr possible de générer un dump mémoire (avec un 'kill -3' sous Linux), néanmoins le résultat peut être assez lourd à analyser. Confronté récemment à un tel problème, je me suis rendu compte que Sun fournit avec son JDK un ensemble d'outils permettant de résoudre bon nombre de problème. Ces outils sont disponible depuis la version 1.5 du JDK, ils ne sont pas suportés par Sun et ne fonctionnent que sur certaines plate-formes : Linux, Solaris, Mac OS, mais pas Windows... Voici donc une présentation succincte des possibilités offertes pour diagnostiquer un problème de fuite mémoire.En savoir plus


