× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.


  • Subject: Re: What CRTJVAPGM does
  • From: lwloen@xxxxxxxxxx
  • Date: Wed, 20 Sep 2000 18:10:05 -0500

These are really question I should be answering, since I
have a lot to do with the Performance Capabilities Guide and
the Java Performance chapter in particular.

Gary asked:

>1.  Considering only the runtime performance (not compile time), is the
>runtime performance of CRTJVAPGM OPTIMIZE(40) with "guards" that much
>better than the JIT with its runtime knowledge that it is worth it to
>perform the CRTJVAPGM?

As far as I can tell, in what we measure, OPTIMIZE(40) will beat
the JIT.

As I said earlier today, our published claim is that the JIT is at
roughly OPTIMIZE(30) performance today.  This will vary somewhat,
but it's a good guide, if a rough guide.

To give an idea, I generally observe that OPTIMIZE(20) is roughly
twice as slow as OPTIMIZE(40) and OPTIMIZE(30) is somewhere in between,
and often closer to OPTIMIZE(40) than OPTIMIZE(20).  But, these
things vary.  40 is faster than 30 is faster than 20 is pretty reliable.
Exactly where the JIT ends up varies, but it is closer to 40 than 20
and so 30 is a good guide for a general publication.

It may be that someone will produce an application where
the JIT actually wins.  I haven't seen it yet, but that's
no proof it won't happen now and then.  I don't expect this
to be typical, however.

>Do you see the runtime performance of the JIT
>catching up to CRTJVAPGM?

That's a question that probably has no real answer, at least
not one that anyone should be taking to the bank.

Part of this depends on the evolution of Java itself
and how people use it in the future.

Clearly, there are optimizations that the JIT can do that either
OPTIMIZE(40) cannot do or cannot do without added code.  But, the
question then becomes "will those features be used enough to wipe
out the other advantages of OPTIMIZE(40)"?

All I can really say is "OPTIMIZE(40) wins today."  For the rest,
you need a crystal ball.  Generally, I tend to presume that today
is a good guide to tomorrow.  But, that's a heuristic and not
a real prediction.

>2.  From a runtime perspective, at what optimization level, if any, is
>the JIT code faster than CRTJVAPGM?

Again, our published document says that JIT is "about" OPTIMIZATION(30)
which really means sometimes a bit better than that, sometimes a bit
worse.

>3.  Does the JIT do a "mixed mode" analysis to only JIT classes that
>will be executed a lot or does it JIT compile everything?

I'm not sure what the answer is, and it may change over time.
There are different strategies that have been used at different
times.  The '400 version of the JIT will probably be more pro-JIT
than other JVMs because the reasons I know of for delaying JIT don't
really apply in a server world.  Certainly, the 'Hot Spot' notion
of seeing which classes "run lots" and then doing a bit more
aggressive code gen has been around not just in Sun's code, but
in IBM's JIT code since at least 1.1.8 if not 1.1.7.  Thus, the
question probably boils down to not "whether to JIT" but
"how aggressively to optimize" and "when to do the stronger one."
There's no simple answer to that.

>4.  Is the compile time overhead of the JIT large enough to justify
>maintaining both the JIT compiler and the CRTJVAPGM compiler going
>forward?

To my mind, this really isn't the question.  The question is whether
CRTJVAPGM OPTIMIZE(40) continues to outperform the JIT.  As long as
it does, then that gives IBM an incentive to produce both.

In a server context, the JIT cost is likely to be somewhat of a
"start up" cost akin to the cost and frequency of starting up an
OS/400 subsystem (or only slighly oftener).  I'm not sure that
this is a precise analogy (it really relates to how often WebSphere
starts up added JVMs, but I expect it to be on that order of
cost).

This won't be quite as true or as clean for some JSP environments,
if the underlying JSP file itself changes, but I expect it may
well hold true in the servlet and even application environments very
broadly.  That means that in practice, the JIT cost will not be
a big swinger for most uses of Java on the '400, especially
servlets, since it will be (essentially) a Monday morning kind
of cost.

Thus, the question really goes back to how close the JIT gets to OPT(40).
And, as I've indicated, that's really a crystal ball question in the end.



Larry W. Loen  -   Senior Java and AS/400 Performance Analyst
                          Dept HP4, Rochester MN


+---
| This is the JAVA/400 Mailing List!
| To submit a new message, send your mail to JAVA400-L@midrange.com.
| To subscribe to this list send email to JAVA400-L-SUB@midrange.com.
| To unsubscribe from this list send email to JAVA400-L-UNSUB@midrange.com.
| Questions should be directed to the list owner: joe@zappie.net
+---

As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.