On Sat, Jan 16, 2010 at 1:03 AM, Charles Oliver Nutter
<head...@headius.com>wrote:

> I have found an interesting clue to poor startup!
>
> It appears that DefaultRubyParser.yyparse (the main parser method) is
> *still* never being jitted by the JVM, in either client or server
> modes (at least on OS X Java, which should be pretty normal).
>

Charlie - Beware.

Different OSes can have *very* different profiles for both the set of
methods which are compiled and the amount of instructions each produce.

My research in this area has unfortunately not produced any good rules of
thumb yet, except "It's complicated", even between Unixish OSes.

For example, Solaris and Linux may have different sets of methods which are
compiled (and it is not simply the case that Linux compiles more than
Solaris does - there are methods which Solaris will go for which Linux won't
touch).

To make matters worse, the amount of instructions generated for a method may
vary wildly. I have seen Solaris and Linux generating 5x # instructions for
a method (and in each direction).

So, to do this kind of performance tuning cross-platform, I haven't found a
good way except to repeat runs across all OSes I care about.

Having said all that, if anyone else on-list has done work in this area, and
has discovered any useful rules-of-thumb or other techniques for
cross-platform optimisation, please share - would love to hear about any
results here.

Thanks,

Ben

Reply via email to