Does Eclipse run slow, or Netbeans consumes a lot of memory ?
Here is a solution, well a partial one since the memory consumption still remains: change the Eclipse’s Java VM or Netbeans Java VM with Oracle’s Java VM called JRockit and you’ll see a performance boost.
It is free, it is big and not so easy to tune, but it is fast.
First of all there are two flavors of the Oracle’s Java VM:
- Oracle JRockit Mission Control
- Oracle JRockit Real Time
I personally prefer Oracle JRockit Real Time. You can make up your mind by reading http://www.oracle.com/technology/software/products/jrockit/FAQ.htm
As a big plus you are not required to provide any information about yourself, such as e-mail (as others require) when downloading the installation kit.
After you have it, lets say it is jrrt-3.1.2-1.6.0-linux-x64.bin, you must make it executable:
-
chmod +x
and then execute it (version of the kit used for testing is highlighted) :
-
sudo ./jrrt-3.1.2-1.6.0-linux-x64.bin
You can install it in a number of locations, such as under /usr/lib/jvm , or /usr/lib64. Although this Java Virtual Machine is on 64 bits, I prefer the first location (although to the end, due to simlinks it doesn’t matter).
Then you perform a simlink to it :
-
ln -s /usr/lib64/jvm/jrrt-3.1.2-1.6.0 /usr/lib/jvm/java-6-jrockit
The naming java-6-jrockit is needed by the update-alternatives in order to discover it.
Next you use the update-alternatives to notify the programming environment about its existence (a very very big minus, since Sun’s Java VM does it automatically):
update-alternatives -- install /usr/bin/java java /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/java 64 update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/jar 64 update-alternatives --install /usr/bin/jarsigner jarsigner /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/jarsigner 64 update-alternatives --install /usr/bin/javadoc javadoc /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/javadoc 64 update-alternatives --install /usr/bin/javah javah /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/javah 64 update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/javap 64 update-alternatives --install /usr/bin/jconsole jconsole /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/jconsole 64 update-alternatives --install /usr/bin/jdb jdb /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/jdb 64 update-alternatives --install /usr/bin/jps jps /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/jps 64 update-alternatives --install /usr/bin/rmiregistry rmiregistry /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/rmi 64 update-alternatives --install /usr/bin/appletviewer appletviewer /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/appletviewer 64 update-alternatives --install /usr/bin/apt apt /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/apt 64 update-alternatives --install /usr/bin/extcheck extcheck /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/extcheck 64 update-alternatives --install /usr/bin/idlj idlj /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/idlj 64 update-alternatives --install /usr/bin/jrunscript jrunscript /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/jrunscript 64 update-alternatives --install /usr/bin/jstat jstat /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/jstat 64 update-alternatives --install /usr/bin/jstatd jstatd /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/jstatd 64 update-alternatives --install /usr/bin/native2ascii native2ascii /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/native2ascii 64 update-alternatives --install /usr/bin/rmic rmic /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/rmic 64 update-alternatives --install /usr/bin/schemagen schemagen /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/schemagen 64 update-alternatives --install /usr/bin/serialver serialver /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/serialver 64 update-alternatives --install /usr/bin/wsgen wsgen /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/wsgen 64 update-alternatives --install /usr/bin/wsimport wsimport /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/wsimport 64 update-alternatives --install /usr/bin/xjc xjc /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/xjc 64 update-alternatives --install /usr/bin/keytool keytool /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/keytool 64 update-alternatives --install /usr/bin/orbd orbd /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/orbd 64 update-alternatives --install /usr/bin/pack200 pack200 /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/pack200 64 update-alternatives --install /usr/bin/policytool policytool /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/policytool 64 update-alternatives --install /usr/bin/rmid rmid /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/rmid 64 update-alternatives --install /usr/bin/servertool servertool /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/servertool 64 update-alternatives --install /usr/bin/tnameserv tnameserv /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/tnameserv 64 update-alternatives --install /usr/bin/unpack200 unpack200 /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/unpack200 64
This being done you can now safely change the default Java VM :
sudo update-alternatives --config java
There are 5 alternatives which provide `java'.
Selection Alternative
-----------------------------------------------
1 /usr/lib/jvm/java-6-sun/jre/bin/java
2 /usr/bin/gij-4.2
3 /usr/bin/gij-4.3
*+ 4 /usr/lib/jvm/java-gcj/jre/bin/java
5 /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/java
Press enter to keep the default[*], or type selection number: 5
If the change is successful, on a new call should look like:
sudo update-alternatives --config java
There are 5 alternatives which provide `java'.
Selection Alternative
-----------------------------------------------
1 /usr/lib/jvm/java-6-sun/jre/bin/java
2 /usr/bin/gij-4.2
3 /usr/bin/gij-4.3
* + 4 /usr/lib/jvm/java-gcj/jre/bin/java
5 /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/java
Press enter to keep the default[*], or type selection number: 5
Just press CTRL–C and go forward with:
sudo update-alternatives --config javac
There are 5 alternatives which provide `javac'.
Selection Alternative
-----------------------------------------------
1 /usr/lib/jvm/java-6-sun/bin/javac
2 /usr/bin/ecj
3 /usr/bin/gcj-wrapper-4.3
*+ 4 /usr/lib/jvm/java-gcj/bin/javac
5 /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/javac
Press enter to keep the default[*], or type selection number: 5
sudo update-alternatives --config jar
There are 5 alternatives which provide `jar'.
Selection Alternative
-----------------------------------------------
1 /usr/lib/jvm/java-6-sun/bin/jar
2 /usr/bin/fastjar
*+ 3 /usr/lib/jvm/java-gcj/jre/bin/jar
4 /usr/bin/gjar-4.3
5 /usr/lib/jvm/jrrt-3.1.2-1.6.0/bin/jar
Press enter to keep the default[*], or type selection number: 5
JRockit proves a good way to boost the performance of you development environment, both on Eclipse and Netbeans. Its performance can be seen especially when you are developing web application, and you are using Apache Tomcat.