Comment afficher la taille de segment de mémoire utilisée par une application?

Je pense que j’ai augmenté la taille de mon tas à 1 Go dans NetBeans depuis que j’ai changé la configuration pour ressembler à ceci:

netbeans_default_options="-J-Xmx1g ...... 

Après avoir redémarré NetBeans, puis-je être sûr que mon application reçoit 1 Go maintenant?

Y a-t-il un moyen de vérifier cela?

    Utilisez ce code:

     // Get current size of heap in bytes long heapSize = Runtime.getRuntime().totalMemory(); // Get maximum size of heap in bytes. The heap cannot grow beyond this size.// Any attempt will result in an OutOfMemoryException. long heapMaxSize = Runtime.getRuntime().maxMemory(); // Get amount of free memory within the heap in bytes. This size will increase // after garbage collection and decrease as new objects are created. long heapFreeSize = Runtime.getRuntime().freeMemory(); 

    Il m’a été utile de le savoir.

    Vous pouvez utiliser jconsole (standard avec la plupart des JDK) pour vérifier la taille des segments de tous les processus Java.

    Joignez avec jvisualvm de Sun Java 6 JDK. Les indicateurs de démarrage sont répertoriés.

     public class CheckHeapSize { public static void main(Ssortingng[] args) { // TODO Auto-generated method stub long heapSize = Runtime.getRuntime().totalMemory(); // Get maximum size of heap in bytes. The heap cannot grow beyond this size.// Any attempt will result in an OutOfMemoryException. long heapMaxSize = Runtime.getRuntime().maxMemory(); // Get amount of free memory within the heap in bytes. This size will increase // after garbage collection and decrease as new objects are created. long heapFreeSize = Runtime.getRuntime().freeMemory(); System.out.println("heapsize"+formatSize(heapSize)); System.out.println("heapmaxsize"+formatSize(heapMaxSize)); System.out.println("heapFreesize"+formatSize(heapFreeSize)); } public static Ssortingng formatSize(long v) { if (v < 1024) return v + " B"; int z = (63 - Long.numberOfLeadingZeros(v)) / 10; return String.format("%.1f %sB", (double)v / (1L << (z*10)), " KMGTPE".charAt(z)); } } 

    Vous pouvez utiliser cet outil: Eclipse Memory Analyzer Tool http://www.eclipse.org/mat/ .

    C’est très utile.

    Favori personnel lorsque jvisualvm est excessif ou que vous avez besoin de cli-only: jvmtop

     JvmTop 0.8.0 alpha amd64 8 cpus, Linux 2.6.32-27, load avg 0.12 https://github.com/pasortingc-r/jvmtop PID MAIN-CLASS HPCUR HPMAX NHCUR NHMAX CPU GC VM USERNAME #T DL 3370 rapperSimpleApp 165m 455m 109m 176m 0.12% 0.00% S6U37 web 21 11272 ver.resin.Resin [ERROR: Could not attach to VM] 27338 WatchdogManager 11m 28m 23m 130m 0.00% 0.00% S6U37 web 31 19187 m.jvmtop.JvmTop 20m 3544m 13m 130m 0.93% 0.47% S6U37 web 20 16733 artup.Bootstrap 159m 455m 166m 304m 0.12% 0.00% S6U37 web 46 

    Pour vérifier la taille du tas de votre application Java et le temps CPU, utilisez les outils JProfiler qui accèdent à votre JVM et affichent toutes les allocations de temps de stack et de processeur

    plug-in disponible pour eclipse et intellej Idea IDE

    Lien pour télécharger Jprofiler

    http://www.ej-technologies.com/download/jprofiler/files