Ich habe eine Klasse, die infinit laufen (nichts tun, nur Schleifen und schlafen), namens NeverReturn. Ich versuche, es zu laufen folgenden Befehl in Windows XP 32-Bit:Wie viele JVM können wir in einer Maschine haben?
java -Xms1200M NeverReturn
ich mit dem Befehl finden kann ich nur 4 Java-Instanz zur gleichen Zeit erstellen. Der fünfte und der nächste Java-Befehl können jvm nicht erstellen.
Wenn ich den Befehl zu -Xms600M ändern, kann ich 8 Java-Instanz erstellen. Der 9. wird gescheitert sein.
Könnte jemand das erklären? Ich verwende sun jdk1.6 update 23 und jdk1.5 update 22.
Die 's' in -Xms zwingen die JVM, ** mindestens ** soviel Speicher zuzuweisen. Vielleicht hast du an '-Xmx' gedacht, mit einem 'x', das ** höchstens soviel Speicher zuweist. Wenn Ihr Computer 6 GB hat, ist das, was Sie sehen, völlig normal, dass Sie "-Xms" verwendet haben. – Gugussee
Die 32bit XP-Version kann nur 4GB verarbeiten - und afaik, da sind dann nur etwa 3GB verfügbar. – tigger
Ich verstehe den Unterschied zwischen den -Xms und -Xmx. Meine Frage ist OS haben die Fähigkeit, jeden Prozess über 2 GB Speicher auf 32-Bit-Windows-System zu geben. Aber warum gibt es noch eine Einschränkung, die diesen jvm-Prozess kreuzt. – xeranic