Thorbj�rn Ravn Andersen wrote:

Steve Blackburn wrote:

Over time we learned certain idioms which on one hand meant we tended to get reasonable performance first shot, but on the other may have undermined the natural Java style we started with.

Do you have a summary of this available somewhere on the net?

We did write it up last year, but that is already somewhat out of date.

http://cs.anu.edu.au/~Steve.Blackburn/pubs/abstracts.html#mmtk-icse-2004

We are about to check in some major re-working of MMTk in the next few days. These include moves to more "normal" Java in some cases, including virtual methods in performance critical areas. The Jikes RVM optimizing compiler is very agressive and thus able to inline and optimize many cases. We are making a minor improvement to the compiler which allows us to be more "natural" in our coding style.

If I understand you correctly, you have found that you need to code in a special way to get the best code out of it. Is this generically for java or just the compiler you used?

Much of it is very general. Basically the way we did it was to try to write things as naturally as possible and then look for the performance issues, understand *why* they were issues, and then either improve the compiler (infrequent, since it is a very agressive compiler already), or think of alternative ways of coding up the problem. It is important to emphasize that only a small fraction of the code is actually performance critical, and it is that code which we are carefull with.


I should also say that I am not certainly claiming that our implementation is optimal. It is good, and it certainly can be improved (and is being improved all the time...)

Cheers,

--Steve



Reply via email to