Da klappt was mit getMemory nicht

Status
Nicht offen für weitere Antworten.
M

Mr. Oizo

Gast
Hallo Forum!
Ich habe folgenden Code geschrieben:

Code:
	  System.out.println("Memory now: " + Runtime.getRuntime().freeMemory());
	  int[] a = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
	  System.out.println("Memory now: " + Runtime.getRuntime().freeMemory());
	  System.out.println(a[7]);

Dazu die Ausgabe:

Code:
Memory now: 1375816
Memory now: 1375816
7

Ich hätte eigendlich eine Änderung des Speichers erwartet. Dann hatte ich die Idee, das der Speicher bereits vor Start des Programms errechnet und reserviert wird. Aber selbst wenn ich das Zeug mit dem Array weglasse, kommt die selbe Ausgabe mit selben Werten.

Nun frage ich euch: Woran kann das liegen und wie kann ich richtig ermitteln, wieviel Bytes mein Array tatsächlich belegt? (Das möchte ich nachher nicht nur mit int-arrays sondern auch mit anderen datentypen probieren, wo nicht vorher klar ist, wieviel Speicher wie bei int = 4 Byte reserviert wird).
 

Murray

Top Contributor
Runtime#freeMemory arbeitet nicht so exakt, als dass man damit so etwas wie den sizeOf-Operator von C nachbilden könnte. Wenn Du aber sehr viele Objekte anlegst, dann kannst Du den Effekt erkennen:
Code:
System.out.println( Runtime.getRuntime().freeMemory());
int[] a1 = new int[100000];
System.out.println( Runtime.getRuntime().freeMemory());
long[] a2 = new long[100000];
System.out.println( Runtime.getRuntime().freeMemory());
 
M

Mr. Oizo

Gast
Da bekomm ich jedes mal folgende Ausgabe:

Code:
1379344
1206512
1209344

Irgendwie komisch, oder?
Von 2. zu 3. versteh ich, aber von 1. zu 2. kommt mir nicht gerade sinnvoll vor.
Naja, weißt du wieviel MB Speicher ein booleanarray mit einer Mächtigkeit von etwa 10.000 belegt (praktisch gesehen)?
 
E

elexx

Gast
Java bezieht die Infos vom Betriebssystem, welches schubweise memory an die JVM abliefert. Das wird der Grund sein, warum Änderungen nicht unmittelbar nachvollziehbar sind.
 

Ontos

Mitglied
Moin Moin

Den Speicher den die VM benötigt besorgt sich die VM nicht nur so das es grade reicht sondern legt noch einen Sicherheit drauf. Der Speicher wird auch nicht direkt nach dem löschen eines Objectes (Ja auch nachdem der GC freigeräumt hat) an das OS freigegeben, sondern wird noch etwas behalten um neuen Steigungen entgegenzuwirken usw.....

Also nicht vergessen: VM heißt Virtuelle Maschine und "simuliert" ein "OS" auf dem Wirtsrechner. Realität(VM) != Realtität(OS)

cu Jens
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
torresbig Website login Problem - Jsoup, wie bisher, klappt nicht! Allgemeine Java-Themen 31
D ArrayListe delete Methode klappt nicht Allgemeine Java-Themen 12
F URI mit Parameter klappt nicht Allgemeine Java-Themen 1
L sortiertes Array im main aufrufen klappt nicht. Allgemeine Java-Themen 3
K Eingabe mit Char vergleichen klappt nicht! Allgemeine Java-Themen 2
X Löschen von einer Zeile in einer Text Datei. Klappt nicht. Allgemeine Java-Themen 4
J Java Dateidownload klappt bei einigen Datein nicht Allgemeine Java-Themen 7
F Input/Output "transient" klappt nicht wie gewünscht Allgemeine Java-Themen 1
S XML lesen, verarbeiten, speichern klappt in Eclipse, aber nicht in der JAR Allgemeine Java-Themen 4
T JavaScript put klappt nicht Allgemeine Java-Themen 6
K Copy/Paste klappt nicht einwandfrei Allgemeine Java-Themen 15
M Datums vergleich klappt überhaupt nicht.. Allgemeine Java-Themen 4
Z Desktop anzeigen + Screenshot klappt nicht Allgemeine Java-Themen 3
B Datentypen wav Dateien abspielen mit JMF, Clip und Player klappt nicht. Lösung Codec? Allgemeine Java-Themen 13
T Java in Website einbinden klappt i-wie nicht Allgemeine Java-Themen 13
K datenübernahme klappt und klappt nicht Allgemeine Java-Themen 5
R import von Jasper (für SICStus Prolog) klappt nicht Allgemeine Java-Themen 2
J importjava.utilArrayList; klappt nicht Allgemeine Java-Themen 2
B Browserstart klappt nicht mit JAR Allgemeine Java-Themen 5
0 Runtime.exec() VLC starten klappt nicht Allgemeine Java-Themen 9
H2SO3- Warum klappt DateFormat MM.dd.yyyy bei 15.11.2003 Allgemeine Java-Themen 2
T Button Array verschieben klappt nicht. Allgemeine Java-Themen 6
H this klappt nicht Allgemeine Java-Themen 10
Y PropertyMap: Zugriff über konkatenierten String klappt nicht Allgemeine Java-Themen 7
J einfachster Servlet-Aufruf klappt nicht Allgemeine Java-Themen 3
L Vererbung klappt nicht Allgemeine Java-Themen 5
H Speicher freigeben klappt nicht bei Image Objekten, warum? Allgemeine Java-Themen 8
B URLDecoder.decode klappt net Allgemeine Java-Themen 6
G setNextFocusableComponent() klappt nicht Allgemeine Java-Themen 7
T List.isEmpty() klappt nicht?!?!? Allgemeine Java-Themen 5
Zrebna Wieso sollte man Null-Prüfungen nicht mit Optional-Objekten nutzen? Allgemeine Java-Themen 13
kodela Textfeld nicht rechteckig Allgemeine Java-Themen 10
G Doppelklick auf Javaprogramm klapt nicht Allgemeine Java-Themen 1
W Timer terminiert nicht Allgemeine Java-Themen 5
D Linux, Java-Version wird nicht erkannt bzw. welche Einstellung fehlt noch? Allgemeine Java-Themen 19
W Überflüssige Deklaration vermeiden...war da nicht mal was? Allgemeine Java-Themen 3
N lwjgl kann textureSampler nicht finden Allgemeine Java-Themen 4
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
T .Jar kann man nicht ausführen Allgemeine Java-Themen 18
P JDK nicht installiert in Net Object Fusion Allgemeine Java-Themen 7
D Image bewegt sich nicht nach Klicken auf Button Allgemeine Java-Themen 15
N Regex schlägt nicht an Allgemeine Java-Themen 10
Y Wieso krieg ich die Unit Tests nicht hin Allgemeine Java-Themen 55
D Erste Schritte Mp3 Datei kann nicht von der Festplatte geöffnet werden - mit ChatGPT erstellt Allgemeine Java-Themen 7
G Popup wird nicht sichtbar Allgemeine Java-Themen 9
8u3631984 Funktions Parameter mit Lombok "NonNull" annotieren wird in Jacococ Testcoverage nicht herausgefiltert Allgemeine Java-Themen 3
kodela String kann nicht zu Pfad konvertiert werden Allgemeine Java-Themen 16
M Apache Proxy Weiterleitung auf Tomcat funktioniert nicht wie gewünscht Allgemeine Java-Themen 1
Momo16 Brauche Hilfe - Java Projekt kann nicht erstellt werden Allgemeine Java-Themen 12
OnDemand ApacheCommon FTP Client zuckt nicht Allgemeine Java-Themen 3
T JavaPoet - (noch) nicht existente Typen Allgemeine Java-Themen 2
E Es ist nicht möglich, eine Batch-Anweisung auszuführen. Allgemeine Java-Themen 9
C Was passt hier nicht bei der Calendar-Class Allgemeine Java-Themen 2
T Testing JUnit5: try ... catch arbeitet nicht sauber Allgemeine Java-Themen 6
W While Schleife funktioniert nicht ganz Allgemeine Java-Themen 4
OnDemand MemoryLeak nicht zu finden Allgemeine Java-Themen 26
H do-while Schleife funktioniert nicht wie ich es möchte Allgemeine Java-Themen 7
ERlK JDA Code funktioniert nicht? Allgemeine Java-Themen 4
OnDemand Ram Freigabe erfolgt nicht nach Prozessende Allgemeine Java-Themen 18
OnDemand XML desializing Attribute bringt nicht erwartetes Ergebnis Allgemeine Java-Themen 16
T ImageIcon wird nicht angezeigt Allgemeine Java-Themen 6
N JAVA-Code mit Grafikfenster zeichnet in Windows, aber nicht Mac. Allgemeine Java-Themen 4
stormyark TikTakToe funktioniert nicht Allgemeine Java-Themen 10
N Warum wird die For Schleife nicht betreten Allgemeine Java-Themen 4
Tiago1234 Hauptklasse konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 38
T Remove bei ArrayList funktioniert nicht Allgemeine Java-Themen 2
M Map<String,String>funktioniert nicht richtig Allgemeine Java-Themen 4
I "Neues" Lizenzmodell Oracle - JRE nicht mehr zur Redistribution freigegeben? Allgemeine Java-Themen 16
J c Programm läuft nicht in compilierter Version des Java Projektes Allgemeine Java-Themen 7
A code wird nicht ausgeführt Allgemeine Java-Themen 3
Blender3D Alte Beiträge nicht mehr vorhanden Allgemeine Java-Themen 6
M Warum hat Java dieses und jenes nicht... Allgemeine Java-Themen 8
W Bilder werden in App mit Jar-Datei nicht angezeigt Allgemeine Java-Themen 15
Micha43 Applet *.jar läuft nicht auf dem Mac Allgemeine Java-Themen 8
M Warum bekommen ich den Result nicht ? Allgemeine Java-Themen 17
Kiki01 Häufigster Buchstabe lässt sich nicht ermitteln Allgemeine Java-Themen 30
OnDemand RegEx /compilebekomme nicht die erwarteten Werte Allgemeine Java-Themen 9
HerrBolte Seltsamer Fehler nur in der Windows- und nicht in der Java-Console O_O Allgemeine Java-Themen 16
P String.replace() funktioniert nicht? Allgemeine Java-Themen 3
N nicht einsehbarer Fehler im code, kann nicht mehr übersetzten Allgemeine Java-Themen 51
P Karate API Test läuft nicht durch . initializationError Allgemeine Java-Themen 21
N nicht static und auch nicht new Allgemeine Java-Themen 3
Z macOS java konnte nicht entfernt werden xpc verbindungsfehler Allgemeine Java-Themen 4
T Schaltfläche wird nicht gefunden Allgemeine Java-Themen 4
boschl2000 Springerproblem-Implementierung funktioniert nicht richtig Allgemeine Java-Themen 1
F Getter Methode aufrufen funktioniert nicht Allgemeine Java-Themen 1
N Gierigen Regex in nicht-gierigen umwandeln Allgemeine Java-Themen 4
N Regulärer Ausdruck funktioniert nicht Allgemeine Java-Themen 6
AleXusher Hauptklasse startlösung konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 1
G @PostConstruct Annotation nicht mehr gültig ? Allgemeine Java-Themen 7
L Objekte in Set nicht gefunden Allgemeine Java-Themen 13
T Projekt baut nicht mehr/lässt sich nicht mehr ausführen Allgemeine Java-Themen 6
izoards log4j2 will nicht.... Allgemeine Java-Themen 15
Tobero Meine Funktion für das beinhalten eines Punktes in einem Kreis funktioniert nicht Allgemeine Java-Themen 5
1Raini Java if-Abfrage funktioniert nicht! Allgemeine Java-Themen 3
D Firebase retrieve data Problem, Child Element wird nicht angesprochen Allgemeine Java-Themen 0
I serialVersionUID - explizit vergeben oder nicht? Allgemeine Java-Themen 6
MiMa Vorhandenes das nicht existiert?? Allgemeine Java-Themen 7
LimDul Hä? Lambda-Ausdruck geht, Methoden-Referenz nicht Allgemeine Java-Themen 8

Ähnliche Java Themen

Neue Themen


Oben