Mittwoch, 7. April 2010

Mixt it oder auch nicht - die 32 Bit Java Option

Ich habe auf meinem Mac ein aktuelles Eclipse, die Mac Cocoa 64 Bit Version. Jetzt versuchte ich ein eigenes Eclipse-Plugin zu entwickeln und erzeugte ein entsprechendes neues Projekt. Wow, ein seltsamer Fehler in der .log Datei: java.lang.UnsatisfiedLinkError: Cannot load 32-bit SWT libraries on 64-bit JVM.
Was nun, die Tipps wie der auf Seite SWT FAQ fruchten nicht oder waren zu kompliziert. Einfacher war es beim Start meines Plugins die 32 Bit Karte zu ziehen. Mit Hilfe der VM-Option -d32 weist man die JVM an das 32 Bit Datenmodell zu benutzen. Dies muss man in Eclipse bei Run Configurations ... / Arguments / VM Arguments eintragen.
Neben der VM-Option -d32 gibt es auch die 64 Bit Option -d64. Und wenn die Ergebnisse aus der Veröffentlichung von  Venstermans, Eeckhout und De Bosschereaus aus dem Jahr 2005 noch heute stimmen, sollte man in der Regel bei der 32 Bit Option bleiben. Das 64 Bit Java verbraucht mehr Heap (39%), führt zu mehr Cache Misses und ist auch noch langsamer (1,7%).

Update: Diese Informationen sind für Java 7 nicht mehr zutreffend. In Java 7 gibt es eine Option die den 64 Bit Overhead reduziert.

Keine Kommentare:

Kommentar veröffentlichen