Print this page
@@ -416,11 +416,11 @@
// Return the free chunk at the end of the space. If no such
// chunk exists, return NULL.
FreeChunk* find_chunk_at_end();
- bool adaptive_freelists() { return _adaptive_freelists; }
+ bool adaptive_freelists() const { return _adaptive_freelists; }
void set_collector(CMSCollector* collector) { _collector = collector; }
// Support for parallelization of rescan and marking
const size_t rescan_task_size() const { return _rescan_task_size; }
@@ -564,11 +564,11 @@
size_t expansionSpaceRequired(size_t obj_size) const;
FreeChunk* allocateScratch(size_t size);
// returns true if either the small or large linear allocation buffer is empty.
- bool linearAllocationWouldFail();
+ bool linearAllocationWouldFail() const;
// Adjust the chunk for the minimum size. This version is called in
// most cases in CompactibleFreeListSpace methods.
inline static size_t adjustObjectSize(size_t size) {
return (size_t) align_object_size(MAX2(size, (size_t)MinChunkSize));
@@ -583,10 +583,13 @@
virtual size_t minimum_free_block_size() const { return MinChunkSize; }
void removeFreeChunkFromFreeLists(FreeChunk* chunk);
void addChunkAndRepairOffsetTable(HeapWord* chunk, size_t size,
bool coalesced);
+ // Support for decisions regarding concurrent collection policy
+ bool should_concurrent_collect() const;
+
// Support for compaction
void prepare_for_compaction(CompactPoint* cp);
void adjust_pointers();
void compact();
// reset the space to reflect the fact that a compaction of the
@@ -620,11 +623,11 @@
// coalescing of smaller chucks, etc. The counts in the
// census is used to make decisions on splitting and
// coalescing of chunks during the sweep of garbage.
// Print the statistics for the free lists.
- void printFLCensus(int sweepCt) const;
+ void printFLCensus(size_t sweep_count) const;
// Statistics functions
// Initialize census for lists before the sweep.
void beginSweepFLCensus(float sweep_current,
float sweep_estimate);
@@ -633,16 +636,15 @@
// Set the hint for each of the free lists.
void setFLHints();
// Clear the census for each of the free lists.
void clearFLCensus();
// Perform functions for the census after the end of the sweep.
- void endSweepFLCensus(int sweepCt);
+ void endSweepFLCensus(size_t sweep_count);
// Return true if the count of free chunks is greater
// than the desired number of free chunks.
bool coalOverPopulated(size_t size);
-
// Record (for each size):
//
// split-births = #chunks added due to splits in (prev-sweep-end,
// this-sweep-start)
// split-deaths = #chunks removed for splits in (prev-sweep-end,