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