Java Memory Management

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
emge
Beiträge: 1525
Registriert: 20.10.2003 22:05:46
Lizenz eigener Beiträge: Artistic Lizenz
Wohnort: 50° 45' 0" N 12° 10' 0" E

Java Memory Management

Beitrag von emge » 24.02.2005 11:18:32

Hallo an alle Java-Kenner,

ich schlage mich gerade mit einem Java-Memory-Problem rum und suche dazu Informationen, wie das Speichermanagement unter Java 1.4 gehandhabt wird.

Kennt jemand Irgendwelche Seiten im Netz, die das gut, verständlich und kurz erklären? Wann wird von der VM Speicher ans System zurückgegeben? Wann wird eine GarbageCollection durchgeführt? Hängt das vom Verhältnis von Speicher, der von der VM vom Betriebssystem abgefasst wurde zu Speicher, der für die Anwendung noch frei ist ab?

Danke für irgendwelche Tipps.

Grüße, Marco

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 24.02.2005 11:21:45

Schon mal bei Sun selbst geschaut?

Benutzeravatar
emge
Beiträge: 1525
Registriert: 20.10.2003 22:05:46
Lizenz eigener Beiträge: Artistic Lizenz
Wohnort: 50° 45' 0" N 12° 10' 0" E

Beitrag von emge » 24.02.2005 11:31:48

nepos hat geschrieben:Schon mal bei Sun selbst geschaut?
Klar. Aber auch da gestaltet sich die Informationsbeschaffung eher zur Suche nach der Nadel im Heuhaufen.

Deshalb auch die Frage an die Runde, vermutlich hat jemand ein passendes Tutorial rumliegen oder einen enstprechenden Link in den Bookmarks.

Grüße, Marco

Maj0r
Beiträge: 476
Registriert: 08.12.2003 14:52:39
Wohnort: Jüchen, Ne
Kontaktdaten:

Beitrag von Maj0r » 24.02.2005 13:05:53

Grob gesagt, kann man sagen, dass man nie weiss, wann der GarbageCollector aufräumt. Selbst wenn man dem GarbageCollector sagt, dass er es jetzt tun soll, versteht der das nur als Bitte und verlassen darf man sich daher nicht drauf.

Wenn man auf den GarbageCollector angewiesen ist, heisst das in vielen Fällen, dass das EIGENE Speichermanagement nicht vollständig durchdacht ist.

Benutzeravatar
suntsu
Beiträge: 2947
Registriert: 03.05.2002 10:45:12
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: schweiz
Kontaktdaten:

Beitrag von suntsu » 24.02.2005 13:10:32


Benutzeravatar
emge
Beiträge: 1525
Registriert: 20.10.2003 22:05:46
Lizenz eigener Beiträge: Artistic Lizenz
Wohnort: 50° 45' 0" N 12° 10' 0" E

Beitrag von emge » 24.02.2005 13:54:30

Maj0r hat geschrieben:...Wenn man auf den GarbageCollector angewiesen ist, heisst das in vielen Fällen, dass das EIGENE Speichermanagement nicht vollständig durchdacht ist.
8O Versteh ich nicht. Auf den GC bin ich doch sowieso angewiesen. Du meinst, wenn ich den GC manuell anstossen muss, dann haut etwas nicht hin? Das mag meist stimmen. Aber es gibt mit Sicherheit Anwendungsbereiche, in denen die Standardprozeduren zum Aufräumen nicht richtig funktionieren. Gerade bei Anwendungen auf Mehrprozessormaschinen mag das gelegentlich vorkommen. Nich umsonst liefert Sun selbst verschiedene GCs.

Aber ich erkenne schon, die sehnlichst gewünschte kurze und eingängige Zusammenfassung der Funktionsweise des Speichermanagements von Java wird es nicht geben. Also erstmal Specs wälzen...

Grüße, Marco

Benutzeravatar
emge
Beiträge: 1525
Registriert: 20.10.2003 22:05:46
Lizenz eigener Beiträge: Artistic Lizenz
Wohnort: 50° 45' 0" N 12° 10' 0" E

Beitrag von emge » 24.02.2005 13:56:05

Zwar nicht genau das was ich such(t)e, aber ein guter Ansatz zum Selbersuchen.

Grüße, Marco

Benutzeravatar
hupfdule
Beiträge: 1864
Registriert: 09.12.2002 15:04:37
Wohnort: Berlin
Kontaktdaten:

Beitrag von hupfdule » 24.02.2005 17:55:57

Weiß nicht, ob dir das wirklich was hilft, aber es gibt eine VM, die dafür geschrieben wurde, dass der Garbage Collector nicht den Programmfluss stört.
Was nur leider noch viel dümmer ist, ich weiß nicht mehr wie die VM hieß.... Ich weiß nur noch, dass die dahinter stehende Firma auf dem Linuxtag 2002 vertreten war....

Benutzeravatar
emge
Beiträge: 1525
Registriert: 20.10.2003 22:05:46
Lizenz eigener Beiträge: Artistic Lizenz
Wohnort: 50° 45' 0" N 12° 10' 0" E

Beitrag von emge » 24.02.2005 18:18:08

hupfdule hat geschrieben:Weiß nicht, ob dir das wirklich was hilft, aber es gibt eine VM, die dafür geschrieben wurde, dass der Garbage Collector nicht den Programmfluss stört.
Was nur leider noch viel dümmer ist, ich weiß nicht mehr wie die VM hieß.... Ich weiß nur noch, dass die dahinter stehende Firma auf dem Linuxtag 2002 vertreten war....
Interessante Info.

Nützt mir leider (jedenfalls in dem konkreten Fall) nichts, da der App.-Server in einer genau definierten Umgebung (Betriebssystem, JDK, etc.) laufen muss. Alternativen funktionieren zwar, führen aber zum Verlust jeglicher Supportansprüche. Und das Risiko ist mir dann doch etwas zu groß ;-)

Grüße, Marco

Benutzeravatar
hupfdule
Beiträge: 1864
Registriert: 09.12.2002 15:04:37
Wohnort: Berlin
Kontaktdaten:

Beitrag von hupfdule » 27.02.2005 12:29:41

Mir ist grad wieder eingefallen, wie die VM heißt. JamaicaVM. Mehr Infos darüber unter http://www.aicas.com/.

Gruß
Marco

Maj0r
Beiträge: 476
Registriert: 08.12.2003 14:52:39
Wohnort: Jüchen, Ne
Kontaktdaten:

Beitrag von Maj0r » 27.02.2005 13:07:32

Maj0r hat geschrieben:...Wenn man auf den GarbageCollector angewiesen ist, heisst das in vielen Fällen, dass das EIGENE Speichermanagement nicht vollständig durchdacht ist.
@Emge: Mit Deinem Post hast Du mein "in vielen Fällen" hinreichend erklärt :wink:

Antworten