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 <head...@headius.com> wrote: > On Wed, Nov 30, 2011 at 3:27 PM, Stephen Bannasch > <stephen.banna...@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 _______________________________________________ mlvm-dev mailing list mlvm-dev@openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev