JRuby invokedynamic updates for November
Charles Oliver Nutter
headius at headius.com
Wed Nov 30 15:40:45 PST 2011
I may have found one big problem, using some rexml benchmarks I found.
The instance-variable logic I just added seems like it might not be
working right. It was supposed to be experimental and turned off, but
I used the wrong flag.
Invokedynamic disabled (-Xcompile.invokedynamic=false)
Parsing small document for 5 seconds ... 5128 calls (1025.60/s)
Adding new elemnt for 5 seconds ... 599104 calls (119820.80/s)
Document creation for 5 seconds ... 105740 calls (21148.00/s)
Writing tree for 5 seconds ... 6387 calls (1277.40/s)
By-hand search for 5 seconds ... 319598 calls (63919.60/s)
XPath search for 5 seconds ... 1319 calls (263.80/s)
Parse large document for 5 seconds ... 367 calls (73.40/s)
Stream parsing for 5 seconds ... 586 calls (117.20/s)
Pull parsing for 5 seconds ... 622 calls (124.40/s)
SAX2 parsing for 5 seconds ... 213 calls (42.60/s)
Lightweight parsing for 5 seconds ... 787 calls (157.40/s)
With instance var logic on:
Parsing small document for 5 seconds ... 620 calls (124.00/s)
Adding new elemnt for 5 seconds ... 538775 calls (107755.00/s)
Document creation for 5 seconds ... 4457 calls (891.40/s)
Writing tree for 5 seconds ... 1940 calls (388.00/s)
By-hand search for 5 seconds ... 63180 calls (12636.00/s)
XPath search for 5 seconds ... 104 calls (20.80/s)
Parse large document for 5 seconds ... 31 calls (6.20/s)
Stream parsing for 5 seconds ... 334 calls (66.80/s)
Pull parsing for 5 seconds ... 336 calls (67.20/s)
SAX2 parsing for 5 seconds ... 134 calls (26.80/s)
Lightweight parsing for 5 seconds ... 426 calls (85.20/s)
With instance var logic off:
Parsing small document for 5 seconds ... 1179 calls (235.80/s)
Adding new elemnt for 5 seconds ... 554026 calls (110805.40/s)
Document creation for 5 seconds ... 112482 calls (22496.40/s)
Writing tree for 5 seconds ... 8190 calls (1638.00/s)
By-hand search for 5 seconds ... 415686 calls (83137.20/s)
XPath search for 5 seconds ... 107 calls (21.40/s)
Parse large document for 5 seconds ... 72 calls (14.40/s)
Stream parsing for 5 seconds ... 332 calls (66.40/s)
Pull parsing for 5 seconds ... 339 calls (67.80/s)
SAX2 parsing for 5 seconds ... 133 calls (26.60/s)
Lightweight parsing for 5 seconds ... 408 calls (81.60/s)
The parsing cases are still slow, so there's something happening there.
For those following along, the sampled profile (-Xprof, or --sample
passed to JRuby) showed me that my instance variable fallback paths
were getting hit heavily, which is how I figured out something's wrong
there.
- Charlie
On Wed, Nov 30, 2011 at 5:25 PM, Charles Oliver Nutter
<headius at headius.com> wrote:
> On Wed, Nov 30, 2011 at 3:27 PM, Stephen Bannasch
> <stephen.bannasch at deanbrook.org> wrote:
>> user system total real
>> rexml 73.540000 0.000000 73.540000 ( 73.540000)
>> hpricot 6.483000 0.000000 6.483000 ( 6.483000)
>> jdom_document_builder 0.245000 0.000000 0.245000 ( 0.245000)
>> nokogiri 0.433000 0.000000 0.433000 ( 0.433000)
>
> Ok, that's *incredibly* bad. Do you have the script you're using so I
> can reproduce the results here? Something's broken.
>
> - Charlie
More information about the mlvm-dev
mailing list