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

G1: Improve liveness check for empty pinned regions after full gc marking

XMLWordPrintable

    • gc
    • b19

      For open archive regions after marking we check whether anything is still live in there using a bitmap scan.

      However in JDK-8263495 we added code to gather per-region liveness during full gc marking, so that bitmap scan can be replaced by a much faster lookup of the current liveness in that region.

      to be exact, in:

      bool G1FullGCPrepareTask::G1CalculatePointersClosure::do_heap_region(HeapRegion* hr) {

          } else if (hr->is_open_archive()) {
            bool is_empty = _bitmap->get_next_marked_addr(hr->bottom(), hr->top()) >= hr->top();
            if (is_empty) {
              free_open_archive_region(hr);
            }

      the is_empty assignment can be rewritten as proposed.

            tschatzl Thomas Schatzl
            tschatzl Thomas Schatzl
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: