Issue Details (XML | Word | Printable)

Key: JRUBY-2220
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Charles Oliver Nutter
Reporter: Charles Oliver Nutter
Votes: 0
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
JRuby

Struct performance is pretty poor

Created: 04/Mar/08 09:40 AM   Updated: 10/Sep/08 06:48 PM
Component/s: Performance
Affects Version/s: JRuby 1.1RC2
Fix Version/s: JRuby 1.1.3

Time Tracking:
Not Specified

File Attachments: 1. File 157_justin_ethier.rb (2 kB)



 Description  « Hide
For the attached implementation of Ruby Quiz 157, we perform very poorly. I believe this is due to its use of Struct, which has not yet been optimized or converted to the new method binding logic. We should fix this before 1.1...and it's possible this is a bottleneck for other applications as well.

The full set of impls are here: http://tastyspleen.net/~billk/ruby/quiz/157-smallest-circle/benchmark/



 All   Comments   Work Log   Change History      Sort Order: Ascending order - Click to sort in descending order
Thomas E Enebo added a comment - 16/Mar/08 10:54 PM
Charlie already got quite a bit better struct performance, but not all of the ruby quiz entrants which used structs are faster (which may or may not be because of structs). Leaving open but moving to 1.1+.

Charles Oliver Nutter added a comment - 08/Jul/08 03:32 PM
Looking good lately....the remaining run that isn't faster is probably just because it's slower. I'm marking this one resolved for 1.1.3.
Ruby:
             user     system      total        real
FRANK   31.310000   0.060000  31.370000 ( 31.450024)
JUSTIN  12.160000   0.060000  12.220000 ( 12.328323)
LIONEL   0.710000   0.000000   0.710000 (  0.726373)
DOUG     8.480000   0.050000   8.530000 (  8.589435)
PHILIPP  1.990000   0.010000   2.000000 (  2.007738)
BILL     0.540000   0.000000   0.540000 (  0.542767)

JRuby:
             user     system      total        real
FRANK    7.799000   0.000000   7.799000 (  7.800000)
JUSTIN   2.686000   0.000000   2.686000 (  2.685000)
LIONEL   1.202000   0.000000   1.202000 (  1.202000)
DOUG     2.731000   0.000000   2.731000 (  2.731000)
PHILIPP  1.577000   0.000000   1.577000 (  1.576000)
BILL     0.240000   0.000000   0.240000 (  0.239000)