Jikes is an alternative to Sun's javac Java compiler. javac is written in Java to be as portable as possible, but is not the fastest. Jikes is written in C++ and compiled to object code, which means it is less portable but faster. In general, if you compile your own relatively small code on a reasonably fast machine, you might as well use the Sun compiler, but if compilation speed (rather than execution speed) is important, say for JSPs which are automatically compiled on the server when they change, you could consider Jikes. There have been inconsistencies in the Java language handling and the Bytecode generation between the two compilers, so I would recommend testing both with your own code before switching over completely.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Ilja Preuss
author
Sheriff
Joined: Jul 11, 2001
Posts: 14112
posted
0
The modern javac isn't that bad in performance anymore, only startup time still is much bigger (jikes just doesn't have to load a JVM first). We also observed that currently Jikes is *much* more buggy than Javac, so that the former is practically unusable for our projects. YMMV.
Blake Minghelli
Ranch Hand
Joined: Sep 13, 2002
Posts: 331
posted
0
We are currently using jdk1.2.2 but we compile with jikes v1.06 because it is much faster.
We also observed that currently Jikes is *much* more buggy than Javac, so that the former is practically unusable for our projects.
I experienced some bugs too when I tried to upgrade to the latest version of jikes (at the time that was v1.17) so I suggest thorough testing if you decide to use it. We have hundreds of classes in our core package - about 3 or 4 threw VerifyErrors when they were first loaded by the jvm.
Blake Minghelli<br />SCWCD<br /> <br />"I'd put a quote here but I'm a non-conformist"
Guennadiy VANIN
Ranch Hand
Joined: Aug 30, 2001
Posts: 898
posted
0
Thanks, Ilja and Blake, when you incrementally develop, the compilation time maters a lot. I also am interested in any experience, from the same POV, how to restart application without (re)loading each time the JVM, forcing it to remain it running in memory?
Ilja Preuss
author
Sheriff
Joined: Jul 11, 2001
Posts: 14112
posted
0
Originally posted by Guennadiy VANIN: Thanks, Ilja and Blake, when you incrementally develop, the compilation time maters a lot.
Absolutely! To add, we don't typically use Ant for local compilation - it is only used for automatic integration- and nightly builds and for distribution. Most of the developers in my company use Eclipse as their IDE, which has a very nice inbuild incremental compiler. It is able to recompile single methods, so for many of the small changes I do, compilation time is nearly zero. Really - the build time is so short that it automatically compiles every time you save a file!
Guennadiy VANIN
Ranch Hand
Joined: Aug 30, 2001
Posts: 898
posted
0
Thanks Ilja, I am rather not familiar with them. I shall look for the FAQ on them... [ January 25, 2003: Message edited by: Guennadiy VANIN ]