Mercurial > hg > truffle
comparison src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp @ 13400:86e6d691f2e1
8028128: Add a type safe alternative for working with counter based data
Reviewed-by: dholmes, egahlin
author | mgronlun |
---|---|
date | Sat, 23 Nov 2013 12:25:13 +0100 |
parents | 592d8b01fedd |
children | 870aedf4ba4f 9fdaa79b0c27 |
comparison
equal
deleted
inserted
replaced
13399:260ac69dc096 | 13400:86e6d691f2e1 |
---|---|
1991 // a mark-sweep-compact. | 1991 // a mark-sweep-compact. |
1992 void CMSCollector::do_compaction_work(bool clear_all_soft_refs) { | 1992 void CMSCollector::do_compaction_work(bool clear_all_soft_refs) { |
1993 GenCollectedHeap* gch = GenCollectedHeap::heap(); | 1993 GenCollectedHeap* gch = GenCollectedHeap::heap(); |
1994 | 1994 |
1995 STWGCTimer* gc_timer = GenMarkSweep::gc_timer(); | 1995 STWGCTimer* gc_timer = GenMarkSweep::gc_timer(); |
1996 gc_timer->register_gc_start(os::elapsed_counter()); | 1996 gc_timer->register_gc_start(); |
1997 | 1997 |
1998 SerialOldTracer* gc_tracer = GenMarkSweep::gc_tracer(); | 1998 SerialOldTracer* gc_tracer = GenMarkSweep::gc_tracer(); |
1999 gc_tracer->report_gc_start(gch->gc_cause(), gc_timer->gc_start()); | 1999 gc_tracer->report_gc_start(gch->gc_cause(), gc_timer->gc_start()); |
2000 | 2000 |
2001 GCTraceTime t("CMS:MSC ", PrintGCDetails && Verbose, true, NULL); | 2001 GCTraceTime t("CMS:MSC ", PrintGCDetails && Verbose, true, NULL); |
2087 // Sample collection pause time and reset for collection interval. | 2087 // Sample collection pause time and reset for collection interval. |
2088 if (UseAdaptiveSizePolicy) { | 2088 if (UseAdaptiveSizePolicy) { |
2089 size_policy()->msc_collection_end(gch->gc_cause()); | 2089 size_policy()->msc_collection_end(gch->gc_cause()); |
2090 } | 2090 } |
2091 | 2091 |
2092 gc_timer->register_gc_end(os::elapsed_counter()); | 2092 gc_timer->register_gc_end(); |
2093 | 2093 |
2094 gc_tracer->report_gc_end(gc_timer->gc_end(), gc_timer->time_partitions()); | 2094 gc_tracer->report_gc_end(gc_timer->gc_end(), gc_timer->time_partitions()); |
2095 | 2095 |
2096 // For a mark-sweep-compact, compute_new_size() will be called | 2096 // For a mark-sweep-compact, compute_new_size() will be called |
2097 // in the heap's do_collection() method. | 2097 // in the heap's do_collection() method. |
2473 } | 2473 } |
2474 } | 2474 } |
2475 | 2475 |
2476 void CMSCollector::register_gc_start(GCCause::Cause cause) { | 2476 void CMSCollector::register_gc_start(GCCause::Cause cause) { |
2477 _cms_start_registered = true; | 2477 _cms_start_registered = true; |
2478 _gc_timer_cm->register_gc_start(os::elapsed_counter()); | 2478 _gc_timer_cm->register_gc_start(); |
2479 _gc_tracer_cm->report_gc_start(cause, _gc_timer_cm->gc_start()); | 2479 _gc_tracer_cm->report_gc_start(cause, _gc_timer_cm->gc_start()); |
2480 } | 2480 } |
2481 | 2481 |
2482 void CMSCollector::register_gc_end() { | 2482 void CMSCollector::register_gc_end() { |
2483 if (_cms_start_registered) { | 2483 if (_cms_start_registered) { |
2484 report_heap_summary(GCWhen::AfterGC); | 2484 report_heap_summary(GCWhen::AfterGC); |
2485 | 2485 |
2486 _gc_timer_cm->register_gc_end(os::elapsed_counter()); | 2486 _gc_timer_cm->register_gc_end(); |
2487 _gc_tracer_cm->report_gc_end(_gc_timer_cm->gc_end(), _gc_timer_cm->time_partitions()); | 2487 _gc_tracer_cm->report_gc_end(_gc_timer_cm->gc_end(), _gc_timer_cm->time_partitions()); |
2488 _cms_start_registered = false; | 2488 _cms_start_registered = false; |
2489 } | 2489 } |
2490 } | 2490 } |
2491 | 2491 |