Mercurial > hg > graal-compiler
comparison src/share/vm/gc_implementation/concurrentMarkSweep/freeBlockDictionary.hpp @ 1145:e018e6884bd8
6631166: CMS: better heuristics when combatting fragmentation
Summary: Autonomic per-worker free block cache sizing, tunable coalition policies, fixes to per-size block statistics, retuned gain and bandwidth of some feedback loop filters to allow quicker reactivity to abrupt changes in ambient demand, and other heuristics to reduce fragmentation of the CMS old gen. Also tightened some assertions, including those related to locking.
Reviewed-by: jmasa
author | ysr |
---|---|
date | Wed, 23 Dec 2009 09:23:54 -0800 |
parents | 850fdf70db2b |
children | c18cbe5936b8 |
comparison
equal
deleted
inserted
replaced
1111:44f61c24ddab | 1145:e018e6884bd8 |
---|---|
53 virtual void reset() = 0; | 53 virtual void reset() = 0; |
54 | 54 |
55 virtual void dictCensusUpdate(size_t size, bool split, bool birth) = 0; | 55 virtual void dictCensusUpdate(size_t size, bool split, bool birth) = 0; |
56 virtual bool coalDictOverPopulated(size_t size) = 0; | 56 virtual bool coalDictOverPopulated(size_t size) = 0; |
57 virtual void beginSweepDictCensus(double coalSurplusPercent, | 57 virtual void beginSweepDictCensus(double coalSurplusPercent, |
58 float sweep_current, float sweep_ewstimate) = 0; | 58 float inter_sweep_current, float inter_sweep_estimate, |
59 float intra__sweep_current) = 0; | |
59 virtual void endSweepDictCensus(double splitSurplusPercent) = 0; | 60 virtual void endSweepDictCensus(double splitSurplusPercent) = 0; |
60 virtual FreeChunk* findLargestDict() const = 0; | 61 virtual FreeChunk* findLargestDict() const = 0; |
61 // verify that the given chunk is in the dictionary. | 62 // verify that the given chunk is in the dictionary. |
62 virtual bool verifyChunkInFreeLists(FreeChunk* tc) const = 0; | 63 virtual bool verifyChunkInFreeLists(FreeChunk* tc) const = 0; |
63 | 64 |
77 virtual void reportStatistics() const { | 78 virtual void reportStatistics() const { |
78 gclog_or_tty->print("No statistics available"); | 79 gclog_or_tty->print("No statistics available"); |
79 } | 80 } |
80 | 81 |
81 virtual void printDictCensus() const = 0; | 82 virtual void printDictCensus() const = 0; |
83 virtual void print_free_lists(outputStream* st) const = 0; | |
82 | 84 |
83 virtual void verify() const = 0; | 85 virtual void verify() const = 0; |
84 | 86 |
85 Mutex* par_lock() const PRODUCT_RETURN0; | 87 Mutex* par_lock() const PRODUCT_RETURN0; |
86 void set_par_lock(Mutex* lock) PRODUCT_RETURN; | 88 void set_par_lock(Mutex* lock) PRODUCT_RETURN; |