# Eclipse mehr Speicher für VM geben funktioniert nicht



## rodion311 (31. Aug 2006)

Hallo Leute,

ich habe folgendes Problem: 

Mein Programm braucht mehr als die 64 MB, die die VM normalerweise zur Verfügung stellt. Wenn ich mein Programm als jar packe und durch 

java -jar -Xms32m -Xmx256m  meinProg.jar

starte, klappt alles wunderbar.

Das gleiche möchte ich auch in Eclipse haben. 
Wenn ich eclipse so starte:

eclipse.exe -vmargs -Xms256m -Xmx256m -XXermSize=64m -XX:MaxPermSize=64m

oder 

eclipse.exe -vmargs -Xms32m -Xmx256m

dann startet eclipse auch normal, nur ich kriege eine 
java.lang.OutOfMemoryError: Java heap space 
Fehlermeldung, wenn ich mein Programm starte.
Da mein Programm ja funktioniert, wenn ich es wie oben genannt starte, nehme ich an, dass Eclipse doch nicht mehr Speicher für die VM reserviert.


Hat jemand eine Ahnung, was ich falsch mache?


Viele Grüße rod


PS: ich nehme Eclipse 3.1.2


----------



## Wildcard (31. Aug 2006)

Du musst die Parameter deiner Applikation, und nicht Eclipse mitgeben  :lol: 
Macht man übrigens in der Run-Configuration...


----------



## rodion311 (1. Sep 2006)

Hi, 
hört sich logisch an, dass man eclipse parameter mitgeben kann, die dann eclipse für sich selbst nehmen kann und in Eclipse dann nochmal Einstellungen zum launchen eines Programmes vorhanden sind   . Ich dachte halt, dass diese Einstellungen(beim Starten von Eclipse) dann auch für von Eclipse gestarteten Programme gelten. Meine Suche im Netz ergab nur schwammige Ergebnisse und wenn man immer nur die Eclipseparamter findet, dann denkt man halt, das ist der Weg für Eclipse und das Starten von Programmen durch Eclipse in Einem.

Vielen Dank jedenfalls für die lachende Hilfe!

Für andere "Experten", die genauso auf dem Schlauch stehen, wie ich: 

In der Menüleiste:

"Run"-"Run as..."-Reiter "Arguments"- Feld "VM Arguments"

Gute Parametereinstellungen nach der generellen Meinung in anderen Foren:

Rechner hat 512 MB RAM und es laufen neben Eclipse u Browser keine speicherintensiven Anwendungen: 
-Xms256m -Xmx256m -XXermSize=64m -XX:MaxPermSize=64m

Gleiches Szenario wie oben, nur mit 1GB Speicher:
-Xms512m -Xmx512m -XXermSize=128m -XX:MaxPermSize=128m


----------



## Wildcard (1. Sep 2006)

Ich sehe keinen Grund für ein Programm 512MB zu reservieren wenn es das gar nicht von anfang an braucht. Lass den Speicher doch einfach wachsen...


----------



## rodion311_ (1. Sep 2006)

Naja ist es nicht so, dass das System performanter ist, wenn es nicht den Speicher dynamisch erweitern muss? 
Die Frage ist halt, will man die Speichernutzung optimieren oder die Geschwindigkeit der Ausführung (bei ausreichendem Speicher).

Ich denke, daß das ähnlich wie mit der Auslagerungsdatei unter Windows ist. Die setzt man besser auch auf einen festen Wert.
Linux nutzt ja auch den komplett freien Speicher. In diesem Sinne denke ich, warum nicht, wenn man den Speicher zum Ausführungszeitpunkt eh über hat....
Aber das muss halt jeder selbst entscheiden.

Schönes Wochenende

Jörg


----------



## Wildcard (1. Sep 2006)

Wenn's dir um Performanz geht benutz die ServerVM, das bringt wesentlich mehr als ein fest reservierter Speicher.
Vieleicht bin ich einfach nicht kapitalistisch genug um die Einstellung 'nimm dir alles was du irgendwann mal brauchen _könntest_ bevor es dir jemand anders wegschnappt' nachvollziehen zu können  :wink:
Du schreibst bei 1GB Ram 512MB reservieren. Dazu kommen noch 150 - 500 für Eclipse plus ein paar hundert die sich das OS behält und schon bist du über das 1GB raus.
Das heißt es muss permanent geswappt werden, was im Endeffekt viel schlimmer ist als bei bei Bedarf mal eben etwas mehr Speicher zu reservieren...


----------



## rodion311_ (2. Sep 2006)

Zuviel ist nie genug... ;-)
Ich hab nur aufgeschrieben, was ich woanders als Tips gelesen habe. 
Aber danke für den Tip mit der ServerVM.


----------

