JRuby invokedynamic updates for November

Charles Oliver Nutter headius at headius.com
Thu Dec 1 01:29:08 PST 2011


On Thu, Dec 1, 2011 at 2:23 AM, Charles Oliver Nutter
<headius at headius.com> wrote:
> I am still seeing rebinding in profiles of some of the remaining slow
> benchmarks, so I'm missing something.

Bleah, I seem to have found the problem.

If I disable the use of SwitchPoint for class-mutation-originated call
site invalidation, performance matches or exceeds the non-indy numbers
pretty much across the board:

Parsing small document for 5 seconds          ... 5179 calls      (1035.80/s)
Adding new elemnt for 5 seconds               ... 582401 calls    (116480.40/s)
Document creation for 5 seconds               ... 123492 calls    (24698.40/s)
Writing tree for 5 seconds                    ... 8953 calls      (1790.60/s)
By-hand search for 5 seconds                  ... 428487 calls    (85697.40/s)
XPath search for 5 seconds                    ... 1470 calls      (294.00/s)
Parse large document for 5 seconds            ... 395 calls       (79.00/s)
Stream parsing for 5 seconds                  ... 633 calls       (126.60/s)
Pull parsing for 5 seconds                    ... 660 calls       (132.00/s)
SAX2 parsing for 5 seconds                    ... 222 calls       (44.40/s)
Lightweight parsing for 5 seconds             ... 843 calls       (168.60/s)

This is a pretty disappointing finding. I'm not yet sure whether it's
a bug in SwitchPoint optimization or in JRuby's use of SwitchPoint,
but I'd like to see your numbers with and without this flag.

- Charlie


More information about the mlvm-dev mailing list