--- old/src/hotspot/share/gc/parallel/parallelScavengeHeap.hpp 2018-02-20 23:17:44.784756892 +0100 +++ new/src/hotspot/share/gc/parallel/parallelScavengeHeap.hpp 2018-02-20 23:17:44.564749371 +0100 @@ -25,15 +25,15 @@ #ifndef SHARE_VM_GC_PARALLEL_PARALLELSCAVENGEHEAP_HPP #define SHARE_VM_GC_PARALLEL_PARALLELSCAVENGEHEAP_HPP -#include "gc/parallel/generationSizer.hpp" #include "gc/parallel/objectStartArray.hpp" #include "gc/parallel/psGCAdaptivePolicyCounters.hpp" #include "gc/parallel/psOldGen.hpp" +#include "gc/parallel/psSettings.hpp" #include "gc/parallel/psYoungGen.hpp" #include "gc/shared/collectedHeap.hpp" -#include "gc/shared/collectorPolicy.hpp" #include "gc/shared/gcPolicyCounters.hpp" #include "gc/shared/gcWhen.hpp" +#include "gc/shared/softRefPolicy.hpp" #include "gc/shared/strongRootsScope.hpp" #include "memory/metaspace.hpp" #include "utilities/growableArray.hpp" @@ -45,6 +45,7 @@ class MemoryManager; class MemoryPool; class PSAdaptiveSizePolicy; +class PSGCAdaptivePolicyCounters; class PSHeapSummary; class ParallelScavengeHeap : public CollectedHeap { @@ -57,7 +58,9 @@ static PSAdaptiveSizePolicy* _size_policy; static PSGCAdaptivePolicyCounters* _gc_policy_counters; - GenerationSizer* _collector_policy; + const PSSettings _settings; + + SoftRefPolicy _soft_ref_policy; // Collection of generations that are adjacent in the // space reserved for the heap. @@ -87,8 +90,10 @@ HeapWord* mem_allocate_old_gen(size_t size); public: - ParallelScavengeHeap(GenerationSizer* policy) : - CollectedHeap(), _collector_policy(policy), _death_march_count(0) { } + ParallelScavengeHeap(const PSSettings& settings) : + CollectedHeap(), + _settings(settings), + _death_march_count(0) { } // For use by VM operations enum CollectionType { @@ -104,7 +109,7 @@ return "Parallel"; } - virtual CollectorPolicy* collector_policy() const { return _collector_policy; } + virtual SoftRefPolicy* soft_ref_policy() { return &_soft_ref_policy; } virtual GrowableArray memory_managers(); virtual GrowableArray memory_pools(); @@ -129,12 +134,13 @@ void update_counters(); // The alignment used for the various areas - size_t space_alignment() { return _collector_policy->space_alignment(); } - size_t generation_alignment() { return _collector_policy->gen_alignment(); } + size_t gen_alignment() const { return _settings._gen_alignment; } + size_t space_alignment() const { return _settings._space_alignment; } + size_t heap_alignment() const { return _settings._heap_alignment; } // Return the (conservative) maximum heap alignment static size_t conservative_max_heap_alignment() { - return CollectorPolicy::compute_heap_alignment(); + return compute_heap_alignment(); } size_t capacity() const;