Speicherplatzprüfung

Status
Nicht offen für weitere Antworten.
S

shok

Gast
hallo leute...
hab ein problem:

und zwar erstelle ich einpaar Datensätze und will dann den freien Speicher zuvor und danach messen,
bei mir kommt leider, raus das kein Speicher verbraucht wird.

folgender code:
Code:
Runtime rt = Runtime.getRuntime();
		Long memory1 = rt.totalMemory();
		System.out.println("Speicher vorher:"+memory1);
		Datum a2 = new Datum (01,01,1923);
		Student stu2 = new Student("Ingo", "Lehmann",a2,123456,"Informatik", "Magdeburg");
		Datum b2 = new Datum (23,11,1988);
		Student stu3 = new Student("Anne", "Meier",b2,234567,"Wirtschaftsinformatik", "Dessau");
		Datum c2 = new Datum (14,06,1954);
		Student stu4 = new Student("Mike", "Häntschel",c2,345678,"CSV", "Berlin");
		Datum d2 = new Datum (03,04,1974);
		Student stu5 = new Student("Silke", "Schröder",d2,123456,"Computervisualistik", "Magdeburg");
		Datum e2 = new Datum (20,01,1957);
		Student stu6 = new Student("Nadine", "Schulze",e2,803456,"Informatik", "Magdeburg");
		Runtime rt2 =Runtime.getRuntime();
		Long memory2 =rt2.totalMemory();
		Long verbraucht = memory2-memory1;
		System.out.println("Speicher nachher:"+ verbraucht);

ich hoffe mir kann jemand weiterhelfen...danke
mfg
 
S

shok

Gast
warum ist das sinnlos?
also in der aufgabe heißt es...min 5 Objekete generieren und dann mittels der klasse runtime
den freien speicherplatz vor der generierung, während der generierung und danach abmesses...
doch leider verändert sich der wert bei mir nicht
 
M

maki

Gast
warum ist das sinnlos?
Was soll das denn bringen? :)

also in der aufgabe heißt es...min 5 Objekete generieren und dann mittels der klasse runtime
den freien speicherplatz vor der generierung, während der generierung und danach abmesses...
Dann schlage ich vor, du setzt dich auch noch mit freeMemory auseinander, denkst über den Unterschied zu totalMemory nach und beachtest das totalMemory sich auch ändern kann.
 
S

shok

Gast
naja wie auch immer....
also auf jeden fall klappt es nicht so ganz mit runtime methoden

* totalMemory()
Liefert die Gesamtgröße des Speichers der Virtual Machine in Bytes zurück.
* freeMemory()
Liefert die Größe des nicht belegten Speichers in der Virtual Machine in Bytes zurück.
* maxMemory() Liefert die Größe des maximal in der Virtual Machine verfügbaren Speichers zurück.

aber egal welche ich von den 3 methoden benutze...die ausgegebene zahl vor der generierung und nach der generierung bleibt gleich???

kann mir das jemand erklären?

danke
mfg
 
G

Guest

Gast
Ich denke mal aus Performancegründen werden die Werte nur relativ selten aktualisiert.
Mach mal 5 Sekunden Pause nach dem erstellen der Objekte und prüfe dann den Speicherplatzverbrauch.

Da fällt mir noch was ein:
Kann es sein das der Compiler die Objekte wegoptimiert? Werden ja nie benutzt...
 

cburghardt

Mitglied
Anonymous hat gesagt.:
Ich denke mal aus Performancegründen werden die Werte nur relativ selten aktualisiert.
Mach mal 5 Sekunden Pause nach dem erstellen der Objekte und prüfe dann den Speicherplatzverbrauch.

Da fällt mir noch was ein:
Kann es sein das der Compiler die Objekte wegoptimiert? Werden ja nie benutzt...
Jetzt hör aber auf :lol:
Nach Doku ist der Wert aber nur eine Schätzung, kann also durchaus sein dass die Objekte nicht gezählt werden. Du kannst ja einfach mal in ner Schleife sagen wir mal 1000 Objekte erzeugen und in eine Map schreiben. Dann überprüfe freememory.
Nebenbei: der zweite Call für Runtime.getRunTime() ist überflüssig, Runtime ist ein Singleton.
 
Status
Nicht offen für weitere Antworten.

Oben