Print this page

        

*** 416,426 **** // 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; } 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; } --- 416,426 ---- // 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() 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,574 **** 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(); // 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)); --- 564,574 ---- 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() 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,592 **** --- 583,595 ---- 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,630 **** // 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; // Statistics functions // Initialize census for lists before the sweep. void beginSweepFLCensus(float sweep_current, float sweep_estimate); --- 623,633 ---- // 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(size_t sweep_count) const; // Statistics functions // Initialize census for lists before the sweep. void beginSweepFLCensus(float sweep_current, float sweep_estimate);
*** 633,648 **** // 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); // 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, --- 636,650 ---- // 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(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,