Gibt es eine JVM, die besser mit dem Speicher umgeht?

Status
Nicht offen für weitere Antworten.

Rock Lobster

Bekanntes Mitglied
Servus,

ich habe mich in letzter Zeit sehr oft darüber geärgert, wie Java mit dem RAM umgeht.
Und zwar habe ich nur die Möglichkeit, einen Maximalwert anzugeben, und sobald mehr Speicher benötigt wird, als dieser Maximalwert, kackt die VM einfach ab und fertig.

Ein "normales" natives Programm kann 4 GByte Speicher adressieren, und es ist Aufgabe des Betriebssystems, das virtuell zur Verfügung zu stellen. Dann wird halt gepaged und ausgelagert, aber immerhin kann ich mir sicher sein, daß mein Programm irgendwie mit diesen 4 GByte arbeiten kann - selbst wenn sich nur 256 MByte RAM physikalisch im Rechner befinden.

Bei Java ist das leider nicht so, sondern ich nutze eben den besagten Maximalwert. Lustigerweise kann ich hier auch keine 4 GByte angeben. Auch 2 GByte gehen nicht, obwohl ich physikalisch 2 GByte RAM besitze. Und auch 1900 MByte funktionieren nicht. Scheinbar akzeptiert die VM nur Werte, die den physikalisch vorhandenen RAM abzüglich dem gerade gebrauchten RAM nicht überschreiten. Zumindest ist das meine Vermutung. In dem Fall kann also ein Benutzer große Datenmengen nur dann verarbeiten, wenn er auch tatsächlich so viel RAM besitzt.

Da ich nicht begreife, warum sich die VM da so sehr selbst einschränkt, hoffe ich, daß es andere VMs gibt, die in dieser Hinsicht besser sind (und die vollen 4 GByte nutzen können). Kennt ihr da welche, bei denen das wie gewünscht funktioniert?

Oder gibt es auch für die Sun VM eine Möglichkeit, das über bestimmte Parameter zu lösen? Bisher hab ich halt nur mit Xms und Xmx hantiert, und wie gesagt, das entspricht nicht ganz meinen Vorstellungen.
 

Wildcard

Top Contributor
Aus deinem Text schließe ich, das du ein 32 bit Windows System verwendest.
Es handelt sich nicht um ein VM Problem, sondern um schlechtes Speichermanagement von Windows.
Es wird theoretisch nur maximal die Hälfte des adressierbaren Bereichs an einen Prozess vergeben. In der Praxis wird dieser Bereich weiter verringert, was mit Windows zu einem Maximum von 1,5-1,7 GiB führt.
Wenn du mehr Speicher brauchst, nimm ein anderes Betriebssystem oder ein 64 bit System.
 

Rock Lobster

Bekanntes Mitglied
Würde das also bedeuten, daß ich auch auf einem System mit 128 MByte RAM der Java-VM ein Maximum von sagen wir 1,5 GByte zuweisen kann?
 

Wildcard

Top Contributor
Auf einem Windows 32 bit System.
Mit Solaris 64 bit kannst du auch ein paar hundert GiB zuweisen :wink:
 

Rock Lobster

Bekanntes Mitglied
Okay, in diesem Fall hätte sich meine Frage ja dann schon quasi erledigt. Wenn ich also Win32 benutze, dann kann ich IN JEDEM FALL 1,5 GByte zuweisen, selbst wenn der Rechner nur 16 MByte RAM haben sollte? Dann brauch ich auch gar nicht nach 'ner anderen VM zu suchen :)
 

Ice-Tea

Bekanntes Mitglied
Nur mal nebenbei: Windows XP 32bit kann bis zu 4GB verwalten, jedoch jedem Programm (ob Nativ oder Bytecode) nur 2GB zur verfügung stellen.
Es ist also Theoretisch unsinnig mit XP 32bit ein 4GB Arbeitsspeicher zu besitzen. Außer man möchte 3 Spiele gleichzeitig starten und mit ALT-Tab schnell herumswitchen. Ich spreche da aus erfahrung ;)

C&C 3 TW, BF2 und IL2 - Sturmnovik gleichzeitig? kein problem :D


Fazit: Die Windows-Speicherverwaltung ist fürn hintern ...
 

Wildcard

Top Contributor
Ice-Tea hat gesagt.:
Nur mal nebenbei: Windows XP 32bit kann bis zu 4GB verwalten, jedoch jedem Programm (ob Nativ oder Bytecode) nur 2GB zur verfügung stellen.
Es ist also Theoretisch unsinnig mit XP 32bit ein 4GB Arbeitsspeicher zu besitzen. Außer man möchte 3 Spiele gleichzeitig starten und mit ALT-Tab schnell herumswitchen. Ich spreche da aus erfahrung ;)
Unsinn.
Merkst du spätestens dann, wenn du Eclipse Firefox und JBoss laufen lässt.

Fazit: Die Windows-Speicherverwaltung ist fürn hintern ...
Da hingegen widerspreche ich nicht.
 
S

SlaterB

Gast
> Außer man möchte 3 Spiele gleichzeitig starten

gibts denn nur Spiele? für DB, WebServer und Eclipse und ähnliches würde sich doch sicher ein Bedarf finden
(edit: oh, ein Echo)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
berserkerdq2 Gibt es eine saubere Dokumentation von Jfoenix? Allgemeine Java-Themen 1
F Gibt es mittlerweile eine Alternative zu DaisyDiff Allgemeine Java-Themen 2
M Openjdk - gibt es auch eine Openjre? Allgemeine Java-Themen 7
Zrebna Gibt es eine Möglichkeit eine NPE zu vermeiden, wenn null returned wird? Allgemeine Java-Themen 3
S Gibt es eine Moeglichkeit die Runtime Ausführung zu analysieren..? Allgemeine Java-Themen 7
M Gibt es eine API die den aktuellen Wert eines Indikators beim Trading zurückgibt? Allgemeine Java-Themen 7
X Collections Gibt es eine Klasse welche die Vorteile von List und HashMap vereint, aber konstante Laufzeit (O(1)) hat in Java? Allgemeine Java-Themen 4
B Gibt es eine Funktion die den Datentyp einer Variablen ermittelt? Allgemeine Java-Themen 8
V Gibt es eine Möglichkeit die Internet auslastung mit Java auszulesen Allgemeine Java-Themen 11
K Gepacktes Jar-File gibt beim Doppelklick eine Exception aus Allgemeine Java-Themen 4
G Threads Gibt es eine Möglichkeit des Nichtblokierens? Allgemeine Java-Themen 5
G Gibt es so eine SortedMap? Allgemeine Java-Themen 21
G Da Jikes nicht mit java 5 geht, gibt es eine andere. Allgemeine Java-Themen 4
T Verschachtelte For-Schleife gibt falschen Wert zurück, Abbruchbedingung evtl. falsch? Allgemeine Java-Themen 9
E Class.getResourceAsStream() gibt null zurück Allgemeine Java-Themen 2
Tiago1234 CellReference cr = new CellReference("") gibt den falschen Wert zurück Allgemeine Java-Themen 49
Jose05 Gibt es einen Nachteil bei dem JDK 8? Allgemeine Java-Themen 7
H Apache fop -- welche Möglichkeit gibt es um den Fortschritt anzuzeigen (Progressbar) Allgemeine Java-Themen 5
M Warum gibt es Unterschiedliche Kommentar Zeichen Allgemeine Java-Themen 15
Tobero Eclipse Window builder gibt es da sowas wie @ignore? Allgemeine Java-Themen 1
pkm javax.script.ScriptEngineManager gibt mir keine Engine Allgemeine Java-Themen 4
R Schlüsselworte "Throw new exception" gibt nicht den String als Fehlermeldung aus Allgemeine Java-Themen 2
F Überprüfen ob es Überschneidungen von Uhrzeiten (vom Typ Calendar) gibt Allgemeine Java-Themen 10
LimDul Spezifkation, wann es deprecation Warnings gibt Allgemeine Java-Themen 1
C Variablen == gibt immer false aus. Allgemeine Java-Themen 2
E gibt es BigDouble in Java ? Allgemeine Java-Themen 14
S Gibt es eigentlich Java Source Code Interpreter..? Allgemeine Java-Themen 13
P Element einer Liste wurde hinzugefügt, aber es gibt keinen Zugriff Allgemeine Java-Themen 2
R JDK installieren Gibt es ab 2019 überhaupt noch Java? Allgemeine Java-Themen 6
P JSpinner gibt leeren Wert zurück Allgemeine Java-Themen 5
N Gibt es etwas allgemeineres as Object? Allgemeine Java-Themen 16
T Input/Output Konsole gibt trotz printf keine Umlaute aus Allgemeine Java-Themen 17
H NetBeans geotools 15 oder 16 - welche Abhängingkeiten gibt es? Welche Jars brauche ich? Allgemeine Java-Themen 4
P Prüfen ob es Variable mit Namen gibt der als String übergeben wird Allgemeine Java-Themen 7
S Welche Java Techologien gibt es fürs Frontend Allgemeine Java-Themen 4
L Gibt es in Java einen Property Editor? Allgemeine Java-Themen 2
S gibt testText nicht aus Allgemeine Java-Themen 3
R Es gibt keine dummen Fragen (hab ich mal gehört) Allgemeine Java-Themen 11
L Methoden Methode gibt mir beim verschlüsseln mit RSA 0 bytes aus ? Allgemeine Java-Themen 1
H Gibt es einen großen Unterschied zwischen Java 6 und Java 7? Allgemeine Java-Themen 3
L Konsole gibt Smileys aus Allgemeine Java-Themen 3
O Collections ListIterator gibt Inhalt von ArrayList nicht aus Allgemeine Java-Themen 3
C Vergleich von Enums gibt inkorrekte Werte Allgemeine Java-Themen 6
Jats Programm mit CMD Befehl hängt sich auf oder gibt error = 5 aus Allgemeine Java-Themen 4
V Gibt es einen Variablen Cast? Allgemeine Java-Themen 8
R JNI if abfrage gibt immer false zurück. Allgemeine Java-Themen 7
J Eclipse Elipse gibt mir keine Vorschläge mehr :( Allgemeine Java-Themen 6
Z Boolean Abfrage gibt kein Boolean zurück, aber warum? Allgemeine Java-Themen 6
J Warum gibt es keinen Webbrowser auf Java-Basis? Allgemeine Java-Themen 8
E Gibt es Befehle für Kursor auf Konsole ? Allgemeine Java-Themen 3
J Logger gibt nicht alle Level aus Allgemeine Java-Themen 3
B Gibt es einen Unterschied zwischen Java 1.2 und Java 2? Allgemeine Java-Themen 7
J Calendar gibt falsche Wochenanzahl zurück Allgemeine Java-Themen 3
E Gibt es so etwas wie einen Windows Listener? Allgemeine Java-Themen 6
M Gibt es ein Jar - das alle Componente Automatisch anpasst? Allgemeine Java-Themen 14
G Jarfile gibt keine Textnachrichten aus Allgemeine Java-Themen 2
S [1/2done] Woher bekommt man libarys die es erst ab 1.6 gibt. Allgemeine Java-Themen 10
G Gibt es etwas ähnliches wie den ReadKey bei Pascal? Allgemeine Java-Themen 3
D Gibt es indizierte Arrays in Java? Allgemeine Java-Themen 3
S Decimalformat gibt falsche Werte aus Allgemeine Java-Themen 3
M Gibt es eigentlich einen Standalone-Java-ICQ-clone Allgemeine Java-Themen 19
M Gibt es ein Foren-System, dass in Java programmiert ist? Allgemeine Java-Themen 51
N char.At gibt Zeichenkette aus. aber leider 2x Allgemeine Java-Themen 10
G was gibt es für mögliche datenbanken? Allgemeine Java-Themen 6
TRunKX Gibt es ne fertige Java Funktion die Dateien vergleicht? Allgemeine Java-Themen 4
S auf einmal gibt es einen fehler. Allgemeine Java-Themen 3
KonradN Mal eine Frage zu Binary Serialization Allgemeine Java-Themen 15
D Hat Java eine Library um JavaScript auszuwerten? Allgemeine Java-Themen 2
dokan wie kann ich eine funktionierende Suchleiste erstellen Allgemeine Java-Themen 1
B Wie erstelle ich dazu eine Abfrage ob der Button gedrückt wurde? Allgemeine Java-Themen 8
J Integration pay Pale in eine JavaFx Desktop Application Allgemeine Java-Themen 1
berserkerdq2 Wenn ich einfach eine GIF in den Scenebuilder als Bild reinpacke, wird das dann asl Gif angezeigt Allgemeine Java-Themen 1
8u3631984 Strukturiertes Logging : Jedes Feld in eine seperate Zeile - aber wie ? Allgemeine Java-Themen 2
M Eigene Datenstruktur um eine Menge zu speichern Allgemeine Java-Themen 3
A Wie schreibe ich eine For-Schleife in ein Stream API um? Allgemeine Java-Themen 12
E Es ist nicht möglich, eine Batch-Anweisung auszuführen. Allgemeine Java-Themen 9
T Eine Frage des Designs Allgemeine Java-Themen 2
R Best Practice Erfahrungswerte für eine Migration von JSF nach Angular (oder anderes JS-Framework) Allgemeine Java-Themen 1
H Eine Linie verkürzen Allgemeine Java-Themen 5
N rekursion mehrfach eine Methode Öffnen Allgemeine Java-Themen 4
berserkerdq2 Wenn ich eine Methode nur jede 50ms ausführen will, wie mach ich das? Allgemeine Java-Themen 4
berserkerdq2 Wie synchronisiere ich eine for-Schleife Allgemeine Java-Themen 12
berserkerdq2 Wie mache ich in IJVM eine if verzweigung? Allgemeine Java-Themen 27
_user_q Was brauche ich, um eine eigene "Search for updates"-Funktion einzubauen? Allgemeine Java-Themen 1
E Eine Methode einer extendeten Klasse deakitivieren Allgemeine Java-Themen 12
LimDul Kam eine java.net.URL zu einer HashMap und ging als DNS Anfrage wieder heraus Allgemeine Java-Themen 18
pizza_dox_9999 Wie füge ich eine "eigene" ScriptEngine dem ScriptEngineManager? Allgemeine Java-Themen 3
F Kennt ihr eine Library um 2 HTML Seiten zu diffen? Allgemeine Java-Themen 8
Y ImagePanel von anderer Klasse in eine MainFrame Klasse hinzufügen. Allgemeine Java-Themen 1
OnDemand Anzeigen was eine Applikation macht Allgemeine Java-Themen 1
T Problem beim Umwandeln in eine Jar-Datei Allgemeine Java-Themen 3
J Eine Frage zu den Threads und Task Allgemeine Java-Themen 1
Tobero Wie bekomme ich in welchem Quadrat sich eine Position in einem Grid befindet Allgemeine Java-Themen 11
Tobero Wie kann man eine Poisson Disc Sampler? Allgemeine Java-Themen 7
R Lambda Expression in einer Methode execute() aufrufen (execute() ist eine Methode aus dem funktionalen Interface Command) Allgemeine Java-Themen 5
S Noch eine Design-Frage zu Setter Allgemeine Java-Themen 6
N Arrayliste in eine Datei speichern Allgemeine Java-Themen 4
J Öffnen eine jar-Datei Allgemeine Java-Themen 11
S Klassen Einfügen von unbekannter menge an Variablen in eine Klasse mithilfe von ASM Allgemeine Java-Themen 5
R Wo müsste ich im Code eine Änderung vornehmen? Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben