Details

    • Type: Bug Bug
    • Status: Open Open
    • Priority: Blocker Blocker
    • Resolution: Unresolved
    • Affects Version/s: JRuby 1.7.0.pre1
    • Fix Version/s: None
    • Component/s: Compiler
    • Labels:
      None
    • Number of attachments :
      0

      Description

      I'm not sure the reason for this, but using the benchmark from JRUBY-6276, it appears that non-invokedynamic constant lookup performance on Java 6 has degrade in JRuby 1.7. We need to look into this before release, since it appears to be as much as 2x slower.

      JRuby 1.7 on Java 7:

                                         user     system      total        real
      bar1 A in super:               5.473000   0.000000   5.473000 (  5.473000)
      bar2 A in super:               5.363000   0.000000   5.363000 (  5.363000)
      bar1 C:                        6.091000   0.000000   6.091000 (  6.091000)
      bar2 C:                        5.952000   0.000000   5.952000 (  5.952000)
      bar1 I:                        6.875000   0.000000   6.875000 (  6.875000)
      bar2 I:                        7.184000   0.000000   7.184000 (  7.185000)
      

      JRuby 1.7 on Java 6:

                                         user     system      total        real
      bar1 A in super:               7.951000   0.000000   7.951000 (  7.951000)
      bar2 A in super:               8.416000   0.000000   8.416000 (  8.416000)
      bar1 C:                       11.433000   0.000000  11.433000 ( 11.433000)
      bar2 C:                       12.246000   0.000000  12.246000 ( 12.246000)
      bar1 I:                       22.286000   0.000000  22.286000 ( 22.286000)
      bar2 I:                       23.562000   0.000000  23.562000 ( 23.562000)
      

        Activity

        Charles Oliver Nutter made changes -
        Field Original Value New Value
        Fix Version/s JRuby 1.7 [ 17049 ]
        Priority Major [ 3 ] Blocker [ 1 ]
        Charles Oliver Nutter made changes -
        Fix Version/s JRuby 1.7.0.pre2 [ 18527 ]
        Fix Version/s JRuby 1.7.0.pre1 [ 17049 ]
        Hide
        Charles Oliver Nutter added a comment -

        Still appears to be an issue. I investigated the invalidator: it's using object identity, so there should not be any excessive object creation. I also tried removing the volatile from its field, but it did not have any effect.

        It could be that the extra levels of indirection to get at the constant generation are to blame, and we might not be able to avoid that while supporting invokedynamic and non-invokedynamic constant lookup.

        Remarking for 1.7.0.

        Show
        Charles Oliver Nutter added a comment - Still appears to be an issue. I investigated the invalidator: it's using object identity, so there should not be any excessive object creation. I also tried removing the volatile from its field, but it did not have any effect. It could be that the extra levels of indirection to get at the constant generation are to blame, and we might not be able to avoid that while supporting invokedynamic and non-invokedynamic constant lookup. Remarking for 1.7.0.
        Charles Oliver Nutter made changes -
        Fix Version/s JRuby 1.7.0 [ 18624 ]
        Fix Version/s JRuby 1.7.0.pre2 [ 18527 ]
        Charles Oliver Nutter made changes -
        Fix Version/s JRuby 1.7.1 [ 18842 ]
        Fix Version/s JRuby 1.7.0 [ 18624 ]
        Thomas E Enebo made changes -
        Fix Version/s JRuby 1.7.2 [ 19008 ]
        Fix Version/s JRuby 1.7.1 [ 18842 ]
        Thomas E Enebo made changes -
        Fix Version/s JRuby 1.7.2 [ 19008 ]
        Fix Version/s JRuby 1.7.3 [ 19009 ]
        Thomas E Enebo made changes -
        Fix Version/s JRuby 1.7.4 [ 19106 ]
        Fix Version/s JRuby 1.7.3 [ 19009 ]
        Charles Oliver Nutter made changes -
        Fix Version/s JRuby 1.7.4 [ 19106 ]

          People

          • Assignee:
            Unassigned
            Reporter:
            Charles Oliver Nutter
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated: