Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8201486

Optimize reference processing phases for G1 concurrent marking

    Details

    • Subcomponent:
      gc

      Description

      Optimize the reference processing phases for Remark; some of the operations done are not required at all, just wasting time. ~kbarrett explains this:

      "For concurrent marking, except for finalize references (and soft references during phase1), keep_alive is an expensive nop; the call to deal_with_reference will call make_reference_grey, which will find the object is already marked (else the is_alive closure would have said no, and we wouldn't even be calling the keep_alive closure). So if increasing the drain interval gives a significant performance improvement, we could cut off that part of things by somehow noticing that keep_alive didn't do anything (ideally by not calling it at all :), That latter probably requires a change to the ReferenceProcessor API."

      There are probably more "shortcuts" that can be made for non-moving reference processing.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                tschatzl Thomas Schatzl
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated: