6593758: RFE: Enhance GC ergonomics to dynamically choose ParallelGCThreads

Select number of GC threads dynamically based on heap usage and number of Java threads

Reviewed-by: johnc, ysr, jcoomes
This commit is contained in:
Jon Masamitsu 2011-08-09 10:16:01 -07:00
parent 098ed89645
commit 15070123fa
39 changed files with 1523 additions and 231 deletions

View file

@ -35,6 +35,7 @@ class GCTaskTimeStamp;
class GCTaskManager;
class GCTaskThread : public WorkerThread {
friend class GCTaskManager;
private:
// Instance state.
GCTaskManager* _manager; // Manager for worker.
@ -45,6 +46,8 @@ private:
GCTaskTimeStamp* time_stamp_at(uint index);
bool _is_working; // True if participating in GC tasks
public:
// Factory create and destroy methods.
static GCTaskThread* create(GCTaskManager* manager,
@ -84,6 +87,7 @@ protected:
uint processor_id() const {
return _processor_id;
}
void set_is_working(bool v) { _is_working = v; }
};
class GCTaskTimeStamp : public CHeapObj