# Speicherunterschied eclipse/direktes starten



## Guest (30. Nov 2006)

Moin.

Also ich hab da mal ne Frage. Wenn ich mein Programm aus Eclipse raus starte, dann braucht das ungefähr 30 mb Speicher. Wenn ich es allerdings als one jar exportiere und so starte, dann braucht es knapp 60 mb. 

Wieso?


----------



## Zunera (30. Nov 2006)

Hi,

eins vorweg: Was jetzt kommt ist eine Vermutung, kein Fachwissen. Falls ich falsch liege bitte nicht Steinigen sondern Aufklären!  Danke!

Aus eigener Erfahrung weiß ich, dass Eclipse beim Starten glaube kanpp 100 MB Arbeitsspeicher einnimmt - wobei ich vermute, dass die JVM auch einen entsprechenden Anteil an RAM verbraucht (Eclipse selbst ist ja ein Java Project). Dementsprechend muss vielleicht beim Starten einer Java-Anwendung aus Eclipse heraus die JVM nicht extra "geladen" werden. Anders sieht es dann bei StandAlone-Java Anwendungen aus, die "seperate JVMs aufsetzen" (?) und für diese sich nochmal extra Speicher sichern.

Kommt das so hin oder bin ich auf einem komplett falschen Dampfer? Würde mich auch mal interessieren...


----------



## Wildcard (30. Nov 2006)

Eclipse startet eine eigene VM für gestartete Java Anwendungen.
Mich würde eher interessieren ob wir hier von Speicher im RAM, oder RAM+Ausgelagerter Teil reden.
Ehrlich gesagt kann ich mir diesen großen Unterschied nicht anders erklären.


----------



## Gast (1. Dez 2006)

also ich lasse mir den speicherverbrauch mit

```
long currentHeap = ((Runtime.getRuntime().totalMemory()/1024)-(Runtime.getRuntime().freeMemory()/1024));
```

ausgeben. 

ich glaub auch irgendwie, dass eclipse die jvm nicht mehr extra startet.


----------



## Wildcard (1. Dez 2006)

Gast hat gesagt.:
			
		

> ich glaub auch irgendwie, dass eclipse die jvm nicht mehr extra startet.


Doch, das tut es. Siehst du schon daran das du die VM für jedes Projekt einzeln auswählen kannst und auch VM-Paramter übergeben kannst.
Lass dir das lieber vom OS deiner Wahl anzeigen. Auf die Ausgabe dieser Methode würde ich nicht vertrauen.


----------



## byte (1. Dez 2006)

Unter Windows siehst Du es auch daran, dass ein neuer javaw.exe Prozess hinzukommt.

Wenn Du es genau wissen willst, dann würde ich mal einen Profiler (z.B. JProfiler) verwenden. Da kannst Du den Speicherverbrauch ganz genau analysieren.


----------



## Lucifer002 (8. Jan 2007)

Unter Windows ist die Anzeige vom Speicherverbrauch am Prozess nicht ganz wahrheitsgemäß! Hierfür sollte man wirklich von der Runtime die totalMemory und die freeMemory beim start vom Programm mal ausgeben. Vllt auch noch die maxMemory. Bei Eclipse ist es so, dass sehr viele VM-Parameter gesetzt werden, auch wenn man es in der Launch nicht angegeben hat. Ich denke mir hier nur, dass beim Start mit Eclipse ein höherer -Xms(MinimumSpeicher) bzw -Xmx(Maximumspeicher) angegeben wird und daher gleich beim Start mehr Speicher von der JVM allogiert wird 
Einfach mal ausprobieren und versuchen. Kannst ja deine Ergebnisse hier posten


----------

