mirror of
https://github.com/openjdk/jdk.git
synced 2026-03-10 08:01:54 +00:00
8221260: Initialize more class members on construction, remove some unused ones
Reviewed-by: kbarrett, tschatzl
This commit is contained in:
parent
ec1f61711b
commit
b0b6b497a4
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2001, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -205,8 +205,10 @@ G1RegionToHeteroSpaceMapper::G1RegionToHeteroSpaceMapper(ReservedSpace rs,
|
||||
MemoryType type) :
|
||||
G1RegionToSpaceMapper(rs, actual_size, page_size, alloc_granularity, commit_factor, type),
|
||||
_rs(rs),
|
||||
_dram_mapper(NULL),
|
||||
_num_committed_dram(0),
|
||||
_num_committed_nvdimm(0),
|
||||
_start_index_of_dram(0),
|
||||
_page_size(page_size),
|
||||
_commit_factor(commit_factor),
|
||||
_type(type) {
|
||||
@ -248,7 +250,6 @@ bool G1RegionToHeteroSpaceMapper::initialize() {
|
||||
_dram_mapper = new G1RegionsSmallerThanCommitSizeMapper(rs_dram, rs_dram.size(), _page_size, _region_granularity, _commit_factor, _type);
|
||||
}
|
||||
|
||||
_start_index_of_nvdimm = 0;
|
||||
_start_index_of_dram = (uint)(rs_nvdimm.size() / _region_granularity);
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -101,12 +101,10 @@ class G1RegionToSpaceMapper : public CHeapObj<mtGC> {
|
||||
// part of space is mapped to dram and part to nv-dimm
|
||||
class G1RegionToHeteroSpaceMapper : public G1RegionToSpaceMapper {
|
||||
private:
|
||||
size_t _pages_per_region;
|
||||
ReservedSpace _rs;
|
||||
G1RegionToSpaceMapper* _dram_mapper;
|
||||
uint _num_committed_dram;
|
||||
uint _num_committed_nvdimm;
|
||||
uint _start_index_of_nvdimm;
|
||||
uint _start_index_of_dram;
|
||||
size_t _page_size;
|
||||
size_t _commit_factor;
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -119,7 +119,7 @@ AdjoiningGenerations::AdjoiningGenerations(ReservedSpace old_young_rs,
|
||||
}
|
||||
}
|
||||
|
||||
AdjoiningGenerations::AdjoiningGenerations() { }
|
||||
AdjoiningGenerations::AdjoiningGenerations(): _young_gen(NULL), _old_gen(NULL), _virtual_spaces(NULL) { }
|
||||
|
||||
size_t AdjoiningGenerations::reserved_byte_size() {
|
||||
return virtual_spaces()->reserved_space().size();
|
||||
|
||||
@ -50,6 +50,7 @@ class AdjoiningGenerations : public CHeapObj<mtGC> {
|
||||
bool request_young_gen_expansion(size_t desired_change_in_bytes);
|
||||
|
||||
protected:
|
||||
AdjoiningGenerations();
|
||||
// The young generation and old generation, respectively
|
||||
PSYoungGen* _young_gen;
|
||||
PSOldGen* _old_gen;
|
||||
@ -59,7 +60,6 @@ class AdjoiningGenerations : public CHeapObj<mtGC> {
|
||||
|
||||
public:
|
||||
AdjoiningGenerations(ReservedSpace rs, GenerationSizer* policy, size_t alignment);
|
||||
AdjoiningGenerations();
|
||||
|
||||
// Accessors
|
||||
PSYoungGen* young_gen() { return _young_gen; }
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -167,7 +167,6 @@ void GCTaskThread::run() {
|
||||
// so that a task can complete without waiting for idle tasks.
|
||||
// They have to be terminated separately.
|
||||
IdleGCTask::destroy((IdleGCTask*)task);
|
||||
set_is_working(true);
|
||||
}
|
||||
|
||||
// Check if we should release our inner resources.
|
||||
|
||||
@ -47,8 +47,6 @@ private:
|
||||
GCTaskTimeStamp* time_stamp_at(uint index);
|
||||
void add_task_timestamp(const char* name, jlong t_entry, jlong t_exit);
|
||||
|
||||
bool _is_working; // True if participating in GC tasks
|
||||
|
||||
// Factory create and destroy methods.
|
||||
static GCTaskThread* create(GCTaskManager* manager,
|
||||
uint which,
|
||||
@ -85,7 +83,6 @@ protected:
|
||||
uint processor_id() const {
|
||||
return _processor_id;
|
||||
}
|
||||
void set_is_working(bool v) { _is_working = v; }
|
||||
};
|
||||
|
||||
class GCTaskTimeStamp : public CHeapObj<mtGC>
|
||||
|
||||
@ -93,7 +93,15 @@ class ParallelScavengeHeap : public CollectedHeap {
|
||||
|
||||
public:
|
||||
ParallelScavengeHeap(GenerationSizer* policy) :
|
||||
CollectedHeap(), _collector_policy(policy), _death_march_count(0) { }
|
||||
CollectedHeap(),
|
||||
_collector_policy(policy),
|
||||
_gens(NULL),
|
||||
_death_march_count(0),
|
||||
_young_manager(NULL),
|
||||
_old_manager(NULL),
|
||||
_eden_pool(NULL),
|
||||
_survivor_pool(NULL),
|
||||
_old_pool(NULL) { }
|
||||
|
||||
// For use by VM operations
|
||||
enum CollectionType {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -49,34 +49,25 @@ PSAdaptiveSizePolicy::PSAdaptiveSizePolicy(size_t init_eden_size,
|
||||
init_survivor_size,
|
||||
gc_pause_goal_sec,
|
||||
gc_cost_ratio),
|
||||
_avg_major_pause(new AdaptivePaddedAverage(AdaptiveTimeWeight, PausePadding)),
|
||||
_avg_base_footprint(new AdaptiveWeightedAverage(AdaptiveSizePolicyWeight)),
|
||||
_gc_stats(),
|
||||
_collection_cost_margin_fraction(AdaptiveSizePolicyCollectionCostMargin / 100.0),
|
||||
_major_pause_old_estimator(new LinearLeastSquareFit(AdaptiveSizePolicyWeight)),
|
||||
_major_pause_young_estimator(new LinearLeastSquareFit(AdaptiveSizePolicyWeight)),
|
||||
_latest_major_mutator_interval_seconds(0),
|
||||
_space_alignment(space_alignment),
|
||||
_gc_minor_pause_goal_sec(gc_minor_pause_goal_sec),
|
||||
_live_at_last_full_gc(init_promo_size),
|
||||
_young_gen_change_for_major_pause_count(0)
|
||||
_change_old_gen_for_min_pauses(0),
|
||||
_change_young_gen_for_maj_pauses(0),
|
||||
_old_gen_policy_is_ready(false),
|
||||
_young_gen_size_increment_supplement(YoungGenerationSizeSupplement),
|
||||
_old_gen_size_increment_supplement(TenuredGenerationSizeSupplement),
|
||||
_bytes_absorbed_from_eden(0)
|
||||
{
|
||||
// Sizing policy statistics
|
||||
_avg_major_pause =
|
||||
new AdaptivePaddedAverage(AdaptiveTimeWeight, PausePadding);
|
||||
_avg_minor_interval = new AdaptiveWeightedAverage(AdaptiveTimeWeight);
|
||||
_avg_major_interval = new AdaptiveWeightedAverage(AdaptiveTimeWeight);
|
||||
|
||||
_avg_base_footprint = new AdaptiveWeightedAverage(AdaptiveSizePolicyWeight);
|
||||
_major_pause_old_estimator =
|
||||
new LinearLeastSquareFit(AdaptiveSizePolicyWeight);
|
||||
_major_pause_young_estimator =
|
||||
new LinearLeastSquareFit(AdaptiveSizePolicyWeight);
|
||||
_major_collection_estimator =
|
||||
new LinearLeastSquareFit(AdaptiveSizePolicyWeight);
|
||||
|
||||
_young_gen_size_increment_supplement = YoungGenerationSizeSupplement;
|
||||
_old_gen_size_increment_supplement = TenuredGenerationSizeSupplement;
|
||||
|
||||
// Start the timers
|
||||
_major_timer.start();
|
||||
|
||||
_old_gen_policy_is_ready = false;
|
||||
}
|
||||
|
||||
size_t PSAdaptiveSizePolicy::calculate_free_based_on_live(size_t live, uintx ratio_as_percentage) {
|
||||
|
||||
@ -75,7 +75,6 @@ class PSAdaptiveSizePolicy : public AdaptiveSizePolicy {
|
||||
// Statistical data gathered for GC
|
||||
GCStats _gc_stats;
|
||||
|
||||
size_t _survivor_size_limit; // Limit in bytes of survivor size
|
||||
const double _collection_cost_margin_fraction;
|
||||
|
||||
// Variable for estimating the major and minor pause times.
|
||||
@ -111,13 +110,6 @@ class PSAdaptiveSizePolicy : public AdaptiveSizePolicy {
|
||||
// Flag indicating that the adaptive policy is ready to use
|
||||
bool _old_gen_policy_is_ready;
|
||||
|
||||
// Changing the generation sizing depends on the data that is
|
||||
// gathered about the effects of changes on the pause times and
|
||||
// throughput. These variable count the number of data points
|
||||
// gathered. The policy may use these counters as a threshold
|
||||
// for reliable data.
|
||||
julong _young_gen_change_for_major_pause_count;
|
||||
|
||||
// To facilitate faster growth at start up, supplement the normal
|
||||
// growth percentage for the young gen eden and the
|
||||
// old gen space for promotion with these value which decay
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -51,10 +51,6 @@ bool PSFileBackedVirtualSpace::initialize() {
|
||||
return true;
|
||||
}
|
||||
|
||||
PSFileBackedVirtualSpace::PSFileBackedVirtualSpace(ReservedSpace rs, const char* path) {
|
||||
PSFileBackedVirtualSpace(rs, os::vm_page_size(), path);
|
||||
}
|
||||
|
||||
bool PSFileBackedVirtualSpace::expand_by(size_t bytes) {
|
||||
assert(special(), "Since entire space is committed at initialization, _special should always be true for PSFileBackedVirtualSpace");
|
||||
|
||||
|
||||
@ -34,7 +34,6 @@ private:
|
||||
bool _mapping_succeeded;
|
||||
public:
|
||||
PSFileBackedVirtualSpace(ReservedSpace rs, size_t alignment, const char* file_path);
|
||||
PSFileBackedVirtualSpace(ReservedSpace rs, const char* file_path);
|
||||
|
||||
bool initialize();
|
||||
bool expand_by(size_t bytes);
|
||||
|
||||
@ -52,7 +52,11 @@ class PSMarkSweepDecorator: public CHeapObj<mtGC> {
|
||||
public:
|
||||
PSMarkSweepDecorator(MutableSpace* space, ObjectStartArray* start_array,
|
||||
size_t allowed_dead_ratio) :
|
||||
_space(space), _start_array(start_array),
|
||||
_space(space),
|
||||
_start_array(start_array),
|
||||
_first_dead(NULL),
|
||||
_end_of_live(NULL),
|
||||
_compaction_top(NULL),
|
||||
_allowed_dead_ratio(allowed_dead_ratio) { }
|
||||
|
||||
// During a compacting collection, we need to collapse objects into
|
||||
|
||||
@ -406,19 +406,16 @@ size_t mark_bitmap_count;
|
||||
size_t mark_bitmap_size;
|
||||
#endif // #ifdef ASSERT
|
||||
|
||||
ParallelCompactData::ParallelCompactData()
|
||||
{
|
||||
_region_start = 0;
|
||||
|
||||
_region_vspace = 0;
|
||||
_reserved_byte_size = 0;
|
||||
_region_data = 0;
|
||||
_region_count = 0;
|
||||
|
||||
_block_vspace = 0;
|
||||
_block_data = 0;
|
||||
_block_count = 0;
|
||||
}
|
||||
ParallelCompactData::ParallelCompactData() :
|
||||
_region_start(NULL),
|
||||
DEBUG_ONLY(_region_end(NULL) COMMA)
|
||||
_region_vspace(NULL),
|
||||
_reserved_byte_size(0),
|
||||
_region_data(NULL),
|
||||
_region_count(0),
|
||||
_block_vspace(NULL),
|
||||
_block_data(NULL),
|
||||
_block_count(0) {}
|
||||
|
||||
bool ParallelCompactData::initialize(MemRegion covered_region)
|
||||
{
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -46,7 +46,13 @@ PSVirtualSpace::PSVirtualSpace(ReservedSpace rs) :
|
||||
}
|
||||
|
||||
// Deprecated.
|
||||
PSVirtualSpace::PSVirtualSpace(): _alignment(os::vm_page_size()) {
|
||||
PSVirtualSpace::PSVirtualSpace():
|
||||
_alignment(os::vm_page_size()),
|
||||
_reserved_low_addr(NULL),
|
||||
_reserved_high_addr(NULL),
|
||||
_committed_low_addr(NULL),
|
||||
_committed_high_addr(NULL),
|
||||
_special(false) {
|
||||
}
|
||||
|
||||
// Deprecated.
|
||||
|
||||
@ -64,7 +64,14 @@ class PSVirtualSpace : public CHeapObj<mtGC> {
|
||||
// Eventually all instances should be created with the above 1- or 2-arg
|
||||
// constructors. Then the 1st constructor below should become protected and
|
||||
// the 2nd ctor and initialize() removed.
|
||||
PSVirtualSpace(size_t alignment): _alignment(alignment) { }
|
||||
PSVirtualSpace(size_t alignment):
|
||||
_alignment(alignment),
|
||||
_reserved_low_addr(NULL),
|
||||
_reserved_high_addr(NULL),
|
||||
_committed_low_addr(NULL),
|
||||
_committed_high_addr(NULL),
|
||||
_special(false) {
|
||||
}
|
||||
PSVirtualSpace();
|
||||
bool initialize(ReservedSpace rs, size_t commit_size);
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2001, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -35,12 +35,22 @@
|
||||
#include "runtime/java.hpp"
|
||||
#include "utilities/align.hpp"
|
||||
|
||||
PSYoungGen::PSYoungGen(size_t initial_size,
|
||||
size_t min_size,
|
||||
size_t max_size) :
|
||||
PSYoungGen::PSYoungGen(size_t initial_size, size_t min_size, size_t max_size) :
|
||||
_reserved(),
|
||||
_virtual_space(NULL),
|
||||
_eden_space(NULL),
|
||||
_from_space(NULL),
|
||||
_to_space(NULL),
|
||||
_eden_mark_sweep(NULL),
|
||||
_from_mark_sweep(NULL),
|
||||
_to_mark_sweep(NULL),
|
||||
_init_gen_size(initial_size),
|
||||
_min_gen_size(min_size),
|
||||
_max_gen_size(max_size)
|
||||
_max_gen_size(max_size),
|
||||
_gen_counters(NULL),
|
||||
_eden_counters(NULL),
|
||||
_from_counters(NULL),
|
||||
_to_counters(NULL)
|
||||
{}
|
||||
|
||||
void PSYoungGen::initialize_virtual_space(ReservedSpace rs, size_t alignment) {
|
||||
|
||||
@ -48,40 +48,38 @@ AdaptiveSizePolicy::AdaptiveSizePolicy(size_t init_eden_size,
|
||||
_eden_size(init_eden_size),
|
||||
_promo_size(init_promo_size),
|
||||
_survivor_size(init_survivor_size),
|
||||
_avg_minor_pause(new AdaptivePaddedAverage(AdaptiveTimeWeight, PausePadding)),
|
||||
_avg_minor_interval(new AdaptiveWeightedAverage(AdaptiveTimeWeight)),
|
||||
_avg_minor_gc_cost(new AdaptiveWeightedAverage(AdaptiveTimeWeight)),
|
||||
_avg_major_interval(new AdaptiveWeightedAverage(AdaptiveTimeWeight)),
|
||||
_avg_major_gc_cost(new AdaptiveWeightedAverage(AdaptiveTimeWeight)),
|
||||
_avg_young_live(new AdaptiveWeightedAverage(AdaptiveSizePolicyWeight)),
|
||||
_avg_eden_live(new AdaptiveWeightedAverage(AdaptiveSizePolicyWeight)),
|
||||
_avg_old_live(new AdaptiveWeightedAverage(AdaptiveSizePolicyWeight)),
|
||||
_avg_survived(new AdaptivePaddedAverage(AdaptiveSizePolicyWeight, SurvivorPadding)),
|
||||
_avg_pretenured(new AdaptivePaddedNoZeroDevAverage(AdaptiveSizePolicyWeight, SurvivorPadding)),
|
||||
_minor_pause_old_estimator(new LinearLeastSquareFit(AdaptiveSizePolicyWeight)),
|
||||
_minor_pause_young_estimator(new LinearLeastSquareFit(AdaptiveSizePolicyWeight)),
|
||||
_minor_collection_estimator(new LinearLeastSquareFit(AdaptiveSizePolicyWeight)),
|
||||
_major_collection_estimator(new LinearLeastSquareFit(AdaptiveSizePolicyWeight)),
|
||||
_latest_minor_mutator_interval_seconds(0),
|
||||
_threshold_tolerance_percent(1.0 + ThresholdTolerance/100.0),
|
||||
_gc_pause_goal_sec(gc_pause_goal_sec),
|
||||
_young_gen_policy_is_ready(false),
|
||||
_change_young_gen_for_min_pauses(0),
|
||||
_change_old_gen_for_maj_pauses(0),
|
||||
_change_old_gen_for_throughput(0),
|
||||
_change_young_gen_for_throughput(0),
|
||||
_increment_tenuring_threshold_for_gc_cost(false),
|
||||
_decrement_tenuring_threshold_for_gc_cost(false),
|
||||
_decrement_tenuring_threshold_for_survivor_limit(false),
|
||||
_decrease_for_footprint(0),
|
||||
_decide_at_full_gc(0),
|
||||
_young_gen_change_for_minor_throughput(0),
|
||||
_old_gen_change_for_major_throughput(0) {
|
||||
_avg_minor_pause =
|
||||
new AdaptivePaddedAverage(AdaptiveTimeWeight, PausePadding);
|
||||
_avg_minor_interval = new AdaptiveWeightedAverage(AdaptiveTimeWeight);
|
||||
_avg_minor_gc_cost = new AdaptiveWeightedAverage(AdaptiveTimeWeight);
|
||||
_avg_major_gc_cost = new AdaptiveWeightedAverage(AdaptiveTimeWeight);
|
||||
|
||||
_avg_young_live = new AdaptiveWeightedAverage(AdaptiveSizePolicyWeight);
|
||||
_avg_old_live = new AdaptiveWeightedAverage(AdaptiveSizePolicyWeight);
|
||||
_avg_eden_live = new AdaptiveWeightedAverage(AdaptiveSizePolicyWeight);
|
||||
|
||||
_avg_survived = new AdaptivePaddedAverage(AdaptiveSizePolicyWeight,
|
||||
SurvivorPadding);
|
||||
_avg_pretenured = new AdaptivePaddedNoZeroDevAverage(
|
||||
AdaptiveSizePolicyWeight,
|
||||
SurvivorPadding);
|
||||
|
||||
_minor_pause_old_estimator =
|
||||
new LinearLeastSquareFit(AdaptiveSizePolicyWeight);
|
||||
_minor_pause_young_estimator =
|
||||
new LinearLeastSquareFit(AdaptiveSizePolicyWeight);
|
||||
_minor_collection_estimator =
|
||||
new LinearLeastSquareFit(AdaptiveSizePolicyWeight);
|
||||
_major_collection_estimator =
|
||||
new LinearLeastSquareFit(AdaptiveSizePolicyWeight);
|
||||
|
||||
// Start the timers
|
||||
_minor_timer.start();
|
||||
|
||||
_young_gen_policy_is_ready = false;
|
||||
}
|
||||
|
||||
bool AdaptiveSizePolicy::tenuring_threshold_change() const {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -26,8 +26,4 @@
|
||||
#include "gc/shared/gcStats.hpp"
|
||||
#include "gc/shared/gcUtil.inline.hpp"
|
||||
|
||||
GCStats::GCStats() {
|
||||
_avg_promoted = new AdaptivePaddedNoZeroDevAverage(
|
||||
AdaptiveSizePolicyWeight,
|
||||
PromotedPadding);
|
||||
}
|
||||
GCStats::GCStats() : _avg_promoted(new AdaptivePaddedNoZeroDevAverage(AdaptiveSizePolicyWeight, PromotedPadding)) {}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user