Push invalidation + bimorphic fix
Christian Thalinger
christian.thalinger at oracle.com
Tue Aug 9 01:30:29 PDT 2011
On Aug 9, 2011, at 7:58 AM, Charles Oliver Nutter wrote:
> I have set up a local build against "hsx" hotspot compiler dev branch,
> thanks to Christian. I'll try to write something up with the process
> tomorrow.
>
> Anyway, I wanted to test out Tom's patch for GWT bimorphic inlining
> and Christian's patch for push invalidation of mutable call sites. The
> results were peculiar!
>
> First I tried a build with no patches:
>
> headius at headius-desktop:~/projects/jruby$
> JAVA_HOME=~/hsx-hotspot/build/linux/jdk-linux-i586/ bin/jruby --server
> bench/bench_fib_recursive.rb 5 35
> 9227465
> 1.977000 0.000000 1.977000 ( 1.867000)
> 9227465
> 1.524000 0.000000 1.524000 ( 1.524000)
> 9227465
> 1.524000 0.000000 1.524000 ( 1.524000)
> 9227465
> 1.535000 0.000000 1.535000 ( 1.535000)
> 9227465
> 1.529000 0.000000 1.529000 ( 1.529000)
>
> Then with both Tom's and Christian's patches applied together:
>
> headius at headius-desktop:~/projects/jruby$
> JAVA_HOME=~/hsx-hotspot/build/linux/jdk-linux-i586/ bin/jruby --server
> bench/bench_fib_recursive.rb 5 35
> 9227465
> 1.761000 0.000000 1.761000 ( 1.651000)
> 9227465
> 1.457000 0.000000 1.457000 ( 1.457000)
> 9227465
> 1.456000 0.000000 1.456000 ( 1.456000)
> 9227465
> 1.482000 0.000000 1.482000 ( 1.482000)
> 9227465
> 1.454000 0.000000 1.454000 ( 1.453000)
>
> I like any improvements, so naturally I was happy. But Christian
> expected a bigger improvement. So I tried with just Christian's patch:
>
> headius at headius-desktop:~/projects/jruby$
> JAVA_HOME=~/hsx-hotspot/build/linux/jdk-linux-i586/ bin/jruby --server
> bench/bench_fib_recursive.rb 5 35
> 9227465
> 1.665000 0.000000 1.665000 ( 1.555000)
> 9227465
> 1.270000 0.000000 1.270000 ( 1.270000)
> 9227465
> 1.268000 0.000000 1.268000 ( 1.268000)
> 9227465
> 1.292000 0.000000 1.292000 ( 1.292000)
> 9227465
> 1.259000 0.000000 1.259000 ( 1.259000)
>
> Interesting, eh?
Hmm. I remember you were saying this is some old Ultra 20. The only box I could find which is similar is a 2.0GHz Quad-core Opteron running Solaris and I can't confirm your numbers.
No patch:
$ jruby --server -J-showversion bench/bench_fib_recursive.rb 5 35
java version "1.7.0"
Java(TM) SE Runtime Environment (build 1.7.0-b147)
Java HotSpot(TM) Server VM (build 21.0-b14-internal, mixed mode)
1.680000 0.000000 1.680000 ( 1.615000)
1.345000 0.000000 1.345000 ( 1.345000)
1.341000 0.000000 1.341000 ( 1.340000)
1.343000 0.000000 1.343000 ( 1.343000)
1.344000 0.000000 1.344000 ( 1.343000)
My patch:
$ jruby --server -J-showversion bench/bench_fib_recursive.rb 5 35
java version "1.7.0"
Java(TM) SE Runtime Environment (build 1.7.0-b147)
Java HotSpot(TM) Server VM (build 22.0-b01-internal, mixed mode)
1.446000 0.000000 1.446000 ( 1.386000)
1.143000 0.000000 1.143000 ( 1.143000)
1.143000 0.000000 1.143000 ( 1.143000)
1.146000 0.000000 1.146000 ( 1.146000)
1.143000 0.000000 1.143000 ( 1.143000)
Both patches:
$ jruby --server -J-showversion bench/bench_fib_recursive.rb 5 35
java version "1.7.0"
Java(TM) SE Runtime Environment (build 1.7.0-b147)
Java HotSpot(TM) Server VM (build 22.0-b01-internal, mixed mode)
1.335000 0.000000 1.335000 ( 1.268000)
1.122000 0.000000 1.122000 ( 1.122000)
1.122000 0.000000 1.122000 ( 1.123000)
1.122000 0.000000 1.122000 ( 1.122000)
1.121000 0.000000 1.121000 ( 1.121000)
Did you mix up product vs. debug builds?
-- Christian
>
> - Charlie
> _______________________________________________
> mlvm-dev mailing list
> mlvm-dev at openjdk.java.net
> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
More information about the mlvm-dev
mailing list