Vérifier les heapSize par programmation?
Je suis à l'aide d'Eclipse. Le problème, c'est mon application se bloque si la mémoire allouée est de moins de 512 MO. Maintenant est-il de toute façon à vérifier la mémoire disponible pour un programme avant de commencer massive de la mémoire exhaustive de traitement?
Par exemple, je sais que nous pouvons vérifier segment de la JVM taille:
long heapSize = Runtime.getRuntime().totalMemory();
System.out.println("Heap Size = " + heapSize);
Problème est, ce qui donne la taille de segment JVM. Même en augmentation, il ne fonctionne pas à l'aide d'Eclipse. Dans Eclipse, si je change la VM arguments, alors il fonctionne. Cependant l'impression de déclarations ci-dessus est toujours le même. Est-il une commande à travers lequel je peux savoir exactement comment beaucoup de mémoire, je suis affecté pour une application particulière?
- peut-être que le problème est eclipse. Avez-vous essayé Netbeans ou IntelliJ?
- j'ai essayé, c'est le même résultat avec n'importe quel IDE
- La durée de fonctionnement est à la fois totalMemory() et maxMemory(). maxMemory est plus grand dans mon expérience.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser JMX pour recueillir l'utilisation de mémoire dans la mémoire lors de l'exécution.
Exemple De Code:
Exemple De Sortie:
Si vous avez des question à propos de "l'Eden de l'Espace" ou "Survivant de l'Espace", découvrez Comment est la java pool de mémoire divisée
-Xmx
(maximum segment size) paramètre? Peut-être qu'il se bloque parce que c'est de la mémoire à un certain point? Ce que le journal de fichiers de dire, tout dépassement de mémoire d'erreurs?