src/share/vm/gc_implementation/g1/heapRegion.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hs-gc-g1-mmap Cdiff src/share/vm/gc_implementation/g1/heapRegion.cpp

src/share/vm/gc_implementation/g1/heapRegion.cpp

Print this page

        

*** 24,33 **** --- 24,34 ---- #include "precompiled.hpp" #include "code/nmethod.hpp" #include "gc_implementation/g1/g1BlockOffsetTable.inline.hpp" #include "gc_implementation/g1/g1CollectedHeap.inline.hpp" + #include "gc_implementation/g1/g1Log.hpp" #include "gc_implementation/g1/g1OopClosures.inline.hpp" #include "gc_implementation/g1/heapRegion.inline.hpp" #include "gc_implementation/g1/heapRegionRemSet.hpp" #include "gc_implementation/g1/heapRegionSeq.inline.hpp" #include "memory/genOopClosures.inline.hpp"
*** 147,168 **** // The automatic region size calculation will try to have around this // many regions in the heap (based on the min heap size). #define TARGET_REGION_NUMBER 2048 ! void HeapRegion::setup_heap_region_size(uintx min_heap_size) { ! // region_size in bytes uintx region_size = G1HeapRegionSize; if (FLAG_IS_DEFAULT(G1HeapRegionSize)) { ! // We base the automatic calculation on the min heap size. This ! // can be problematic if the spread between min and max is quite ! // wide, imagine -Xms128m -Xmx32g. But, if we decided it based on ! // the max size, the region size might be way too large for the ! // min size. Either way, some users might have to set the region ! // size manually for some -Xms / -Xmx combos. ! ! region_size = MAX2(min_heap_size / TARGET_REGION_NUMBER, (uintx) MIN_REGION_SIZE); } int region_size_log = log2_long((jlong) region_size); // Recalculate the region size to make sure it's a power of --- 148,162 ---- // The automatic region size calculation will try to have around this // many regions in the heap (based on the min heap size). #define TARGET_REGION_NUMBER 2048 ! void HeapRegion::setup_heap_region_size(size_t initial_heap_size, size_t max_heap_size) { uintx region_size = G1HeapRegionSize; if (FLAG_IS_DEFAULT(G1HeapRegionSize)) { ! size_t average_heap_size = (initial_heap_size + max_heap_size) / 2; ! region_size = MAX2(average_heap_size / TARGET_REGION_NUMBER, (uintx) MIN_REGION_SIZE); } int region_size_log = log2_long((jlong) region_size); // Recalculate the region size to make sure it's a power of
*** 183,192 **** --- 177,190 ---- } // And recalculate the log. region_size_log = log2_long((jlong) region_size); + if (G1Log::fine()) { + gclog_or_tty->print_cr("G1 Heap region size: " SIZE_FORMAT "M", region_size / M); + } + // Now, set up the globals. guarantee(LogOfHRGrainBytes == 0, "we should only set it once"); LogOfHRGrainBytes = region_size_log; guarantee(LogOfHRGrainWords == 0, "we should only set it once");
src/share/vm/gc_implementation/g1/heapRegion.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File