Ahead of time compiler solutions

Philippe Laporte plaporte@wgate.com
Fri Nov 15 12:21:00 GMT 2002


Tom Tromey wrote:
>>>>>>"Philippe" == Philippe Laporte <plaporte@wgate.com> writes:
>>>>>>>>>>>>>>Per> It still makes no sense.
>>Philippe> What if I have 20 JVMs running on the system? Do you have a
>Philippe> quantitative idea, in the following line:
>>I think the point is that it makes more sense to just precompile your
>application with gcj and use libgcj. Even if patches to make gcj emit
>JNI code were finished, I'd question whether we would want to include
>them. It isn't, to my mind, a very fruitful approach for free VMs,
>especially given that libgcj already exists -- its only use would be
>with non-free VMs. Also, there would inevitably be an associated
>maintenance burden.
>>Tom
>>How far is the GCJ AWT from working? How many 40-hours one man weeks do 
you think? I'm not suggesting that I already know how to do it, but if 
it's a bug or two, it's another matter.
I know Paul Fischer from FSF has been asking Transvirtual for it. The 
two obvious guys that could finish the thing are the Mehlitz brothers. 
They're very busy with other things right now...
Has GCJ been run though the JCK (TCK) or an equivalent (about which I'd 
like to hear)?
This is the result of my survey on ahead-of-time compilers for Java up 
to now:
The situation is:
20 or so Mozillas run on the same system, each starting a JVM, but we 
would like to have a single copy of the core classes loaded system-wide. 
The OS
loads the JVM text only once, but the core classes are dynamically 
loaded by each JVM process, having its own copy. Precompiling the core 
classes would
provide huge memory savings in that the code for the core classes would 
be loaded in memory only once, "part" of the JVM executable.
I have found the following solutions:
1- GCJ (http://gcc.gnu.org/java/)
It was made compatible with Kaffe at some point, so it might sound 
feasible to do it for the SUN JVM. The best experts estimate the 
required time to
make compatible to SUN to be beyond our interests.
We could use GCJ as the complete solution but their AWT is not 
completely OK yet. Transvirtual won't release their AWT (BISS-AWT) 
because they still
hope to sell it.
It's also possible to generate inefficient, JNI code instead of what's 
being done now. This would produce relatively slow code, but be a much 
lesser development
effort.
Contacts:
GCJ: Tom Tromey (tromey@redhat.com)
Kaffe-GCJ: Patrick Tullmann (tullmann@cs.utah.edu)
2- TurboJ (http://www.ri.silicomp.fr/adv-dvt/java/turbo/)
Supports up to JDK 1.1. They estimate the bring up to date time for one man
at a year. Not a free product. Used by WindRiver and HP.
3- Harissa (http://compose.labri.fr/prototypes/harissa/)
Only supports JDK 1.0.2. Last updated 1998. By now I know this would be a
long project.
4- Toba (http://www.cs.arizona.edu/sumatra/toba/)
Supports up to JDK 1.1. Need I say more...
Then...
The JDK should provide an isolation API in version 1.5 which should provide
the functionality we require.
See
http://developer.java.sun.com/developer/bugParade/bugs/4416624.html
for more details.
Do you know anything else?
Otherwise, what's your estimate of how many 40-hours one man weeks for 
the JNI method?
You cannot see the use of the JNI way? Even if it weren't used by GCJ, 
it could be by Kaffe, and by so many other VMs, which might bring some 
people to GCJ who have projects were space is much more important than 
speed, at least until we get the Isolation API...
Best Regards,
--
Philippe Laporte
Software Engineer
WorldGate
3190 Tremont Avenue
Trevose PA 19053
Tel: 215-354-5389
Email: plaporte@wgate.com


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /