Still crashity crashing

Charles Oliver Nutter headius at headius.com
Tue Aug 4 11:01:19 PDT 2009


On Mon, Aug 3, 2009 at 10:25 AM, Rémi Forax<forax at univ-mlv.fr> wrote:
> Hi Charlie,
> I manage to be able to use the backport with you're code
> but you really a rogue, you load your classes with the bootstrap classpath
> (I suppose you bypass the verifier to start faster)
> and guess what, by default, the backport doesn't take care about
> classes loaded by the boot classpath.
>
> I think it's time to re-consider the default behaviour of the backport agent
> :)

Yeah, perhaps...but it's also perhaps reasonable that when people want
the backport indy to work they would take the hit for startup. What
other behavior are you considering? Offline bytecode manipulation?

> But there is something more problematic,
> the backport optimizer doesn't play well with your compiler :(
>
> time bin/jruby -J-Djruby.jit.logging.verbose=true
> bench/bench_fib_recursive.rb 100
> real    0m38.457s
> user    0m38.115s
> sys    0m0.164s
>
> time bin/jruby -J-javaagent:../indy-backport/lib/jsr292-backport.jar
> -J-Xbootclasspath/p:../indy-backport/lib/jsr292-backport.jar
> -J-Djruby.compile.invokedynamic=true -J-Djruby.jit.logging.verbose=true
> bench/bench_fib_recursive.rb 100
> real    4m51.625s
> user    4m45.040s
> sys    0m4.640s

Yes, that's a pretty poor result :( Did you try moving JRuby to
non-bootclasspath?

> Could you explain how the compiler works and what are these classes  ?
>
> agent
> ruby/jit/ruby/home/forax/java/workspace/jruby_minus_1_dot_4_dot_0dev/lib/ruby/$1_dot_8/benchmark/format7681932_5430994
> agent

This is a jitted method body.

ruby/jit/ruby/home/forax/java/workspace/jruby_minus_1_dot_4_dot_0dev/lib/ruby/$1_dot_8/benchmark/format7681932_5430994BlockCallback$block_0$RUBY$__block__xx1
> agent

These are my generated method handles to closures.

I will hopefully have some time soon to experiment with the backport myself...

- Charlie



More information about the mlvm-dev mailing list