Le morceau de code suivant observé sous JConsole montre une augmentation constante de la taille du tas. Le tas atteint un maximum de 25 Mo, puis le GC fonctionne et diminue la taille du tas à près de 3 Mo. Est-ce le comportement attendu ? Je suis très surpris!Allocation de mémoire Java non demandée
public class Dummy {
public static void main(String[] args) {
System.out.println("start");
while(true){
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
J'utilise Snow Leopard.
+1 - Je suis sûr que c'est la réponse. Il est très improbable que la classe ci-dessus consomme une quantité notable d'espace de tas dans la boucle.En fait, je m'attendrais à des allocations nulles dans la boucle. Même si la JVM alloue (disons) 100 octets pour chaque appel de sommeil, il va falloir un temps TRÈS LONG pour atteindre 25Mb. –