Bill Wagner wrote:
>I'd really be interested in finding any weak spots that may vary from JVM
>to JVM version on all operating systems.
In my experience, there isn't any one thing that stands out. There is at
least as much variation moving along any single axis as there is along any
other axis, or across multiple axes. By "axis" I mean varying one
characteristic, such as JVM version, while holding all others constants,
such as platform, CPU architecture, and OS. Or holding JVM version
constant and varying any one of the others, like OS.
Besides that, there are often significant differences for things you have
no control over, such as whether the memory bus is fast or slow relative to
CPU clock speed, whether the HD is fast or slow, what the size of disk
cache is, and so on. You also have to live with exactly how your OS
schedules processes and threads, which can vary significantly, and is not
specified to be anything in particular by the JVM spec.
There are zilions of web sites that cover JVM speed issues in one way or
another, but there's also a lot written that's wrong in one way or another.
For example, a common mistake is to over-generalize that because X exhibits
some performance profile, the same performance will hold across all axes.
But that's not necessarily so, because X is actually composed of A+B+C+D+E,
and any of those things can vary independent from the others. There are
variations when you change OS, CPU architecture, memory, as well as JVM or
HotSpot JITC version. This is why I treat Java performance as a complex
space with orthogonal axes, rather than a line constrained to only one
dimension.
A compendium of links and articles can be found at this aptly named site:
<http://www.javaperformancetuning.com/>
Also see HotSpot Performance Tuning:
<http://java.sun.com/docs/hotspot/>
This online book is also a good intro to more generalized performance tuning:
<http://java.sun.com/docs/books/performance/1st_edition/html/JPTOC.fm.html>
I say "intro" because even though it's extensive in its coverage, it
describes Java at a single point in time. Java has evolved since that
point, so some things are still true but others are not, and what's no
longer true may depend on which one of the axes you vary.
-- GG
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Java-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/java-dev/email@hidden
This email sent to email@hidden