Während der Ausführung, wie kann ein java-Programm sagen, wie viel Speicher Sie verwendet?
Während der Ausführung, wie kann ein java-Programm sagen, wie viel Speicher Sie verwendet?
Ist mir egal, wie effizient es ist!
Du musst angemeldet sein, um einen Kommentar abzugeben.
VonC ' s Antwort ist eine interaktive Lösung - wenn Sie wissen wollen, programmatisch, die Sie verwenden können,- Laufzeit.totalMemory(), um herauszufinden, die insgesamt verwendete Menge von der JVM, und - Laufzeit.freeMemory(), um herauszufinden, wie viel noch verfügbar ist (D. H. es ist reserviert zu der JVM, aber nicht zugeordnet innerhalb der JVM - neue Objekte können mit diesem Speicher).
Dies sind die Instanz-Methoden - verwenden - Laufzeit.getRuntime() zuerst die singleton-Instanz.
Wenn Sie eine java1.6 irgendwo und Ihr Programm ausgeführt wird java 1.4.2, 1.5 oder 1.6, starten Sie eine visualVM-Sitzung, mit Ihrer Anwendung verbindet, und Folgen Sie den Speicher (und viel mehr)
(Die Bilder werden nicht angezeigt im moment, also bitte bezieht sich auf Die überwachung einer Anwendung für eine Abbildung).
Dies ist nicht exakt, aber für eine grobe Schätzung, nur subtrahieren
Runtime.getRuntime.freeMemory()
ausRuntime.getRuntime.totalMemory()
.Tun, dass zu Beginn des Programms, um eine Vorstellung von der
JVM's
overhead memory-Nutzung und in Abständen letztere in der Ausführung.java.lang.- Laufzeit.totalMemory() gibt Ihnen die notwendige info -- http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Runtime.html