Netbeans mit 32bit Java auf 64bit Fedora Linux (GNOME)

Ich verdiene meine Brötchen ja damit, dass ich Java-Code eintippe. Damit das möglichst schnell geht brauche ich viel viel Speicher und eine schnelle CPU. Aktuelle Rechner sind prädestiniert für 64bit Betriebssysteme und Anwendungen. Allerdings hat die Java-Laufzeitumgebung ein Problem, nämlich dass die 64bit-Variante ziemlich deutlich mehr Speicher verbraucht als die 32bit-Version. Die Ursache liegt in den doppelt so großen Pointern (8 Byte statt 4 Byte) die für jedes Objekt (und das sind viele) erzeugt werden. In meiner Erfahrung fressen Netbeans zusammen mit Tomcat, Spring, Hibernate, etc. bei einer 64-bittigen VM schnell mal 2 GB wo die 32-Bit-Variante nur 1GB braucht. Zu dem Thema gibt es auch einen recht informativen Post.

Also habe ich auf meinem Rechner die x86_64-Variante von Java deinstalliert und eine 32bit-JVM installiert. Damit ist es leider noch nicht getan, da Netbeans nach dem Neustart ziemlich altbacken aussieht. Grund sind fehlende Bibliotheken von GNOME in der 32bit-Variante. Fehlen diese, so verwendet Java ein Standard-Swing-Layout statt der GTK-Themes.

Das Problem löst man das Paket gtk-engines installiert:

yum install gtk2-engines.i686

Jetzt ist Netbeans hübsch wie eh und je.
(Artikel von Christian ’softmetz‘ Kalkhoff, unter CC-BY-SA)

4 Antworten auf „Netbeans mit 32bit Java auf 64bit Fedora Linux (GNOME)“

  1. Ist die Performance unter 32 Bit dann automatisch auch besser, schlechter oder gleich?

    1. Also auf die Performance der fertigen Anwendung hat es keinen Einfluss, ob das Entwicklungssystem 32- oder 64-Bit ist. Ausschlaggebend ist immer die CPU, die die Anwendung ausführt.

      32-Bit Anwendungen sind auf 64-Bit CPUs im besten Fall gleich schnell, normalerweise aber geringfügig langsamer, da die CPU bei solchen Anwendungen in einer Art „Kompatibilitätsmodus“ arbeitet.

  2. Darüber hinaus fehlen der 64-bit VM zahlreiche Versionen des 32-Bit Pendants, die für den Desktop gedacht sind: Die Client-VM, die Code erst kompiliert, wenn er mehrfach ausgeführt wird (im Gegensatz zur Server VM die sofort JIT-kompiliert, Class-Data Sharing, durch das parallele Java-Prozesse insgesamt weniger RAM benötigen etc.

Kommentare sind geschlossen.