362 double fast_reclaim_humongous_time_ms() {
363 return _cur_fast_reclaim_humongous_time_ms;
364 }
365
366 ReferenceProcessorPhaseTimes* ref_phase_times() { return &_ref_phase_times; }
367 };
368
369 class G1EvacPhaseWithTrimTimeTracker : public StackObj {
370 G1ParScanThreadState* _pss;
371 Ticks _start;
372
373 Tickspan& _total_time;
374 Tickspan& _trim_time;
375 public:
376 G1EvacPhaseWithTrimTimeTracker(G1ParScanThreadState* pss, Tickspan& total_time, Tickspan& trim_time);
377 ~G1EvacPhaseWithTrimTimeTracker();
378 };
379
380 class G1GCParPhaseTimesTracker : public CHeapObj<mtGC> {
381 protected:
382 double _start_time;
383 G1GCPhaseTimes::GCParPhases _phase;
384 G1GCPhaseTimes* _phase_times;
385 uint _worker_id;
386 public:
387 G1GCParPhaseTimesTracker(G1GCPhaseTimes* phase_times, G1GCPhaseTimes::GCParPhases phase, uint worker_id);
388 virtual ~G1GCParPhaseTimesTracker();
389 };
390
391 class G1EvacPhaseTimesTracker : public G1GCParPhaseTimesTracker {
392 Tickspan _total_time;
393 Tickspan _trim_time;
394
395 G1EvacPhaseWithTrimTimeTracker _trim_tracker;
396 public:
397 G1EvacPhaseTimesTracker(G1GCPhaseTimes* phase_times, G1ParScanThreadState* pss, G1GCPhaseTimes::GCParPhases phase, uint worker_id);
398 virtual ~G1EvacPhaseTimesTracker();
399 };
400
401 #endif // SHARE_VM_GC_G1_G1GCPHASETIMES_HPP
|
362 double fast_reclaim_humongous_time_ms() {
363 return _cur_fast_reclaim_humongous_time_ms;
364 }
365
366 ReferenceProcessorPhaseTimes* ref_phase_times() { return &_ref_phase_times; }
367 };
368
369 class G1EvacPhaseWithTrimTimeTracker : public StackObj {
370 G1ParScanThreadState* _pss;
371 Ticks _start;
372
373 Tickspan& _total_time;
374 Tickspan& _trim_time;
375 public:
376 G1EvacPhaseWithTrimTimeTracker(G1ParScanThreadState* pss, Tickspan& total_time, Tickspan& trim_time);
377 ~G1EvacPhaseWithTrimTimeTracker();
378 };
379
380 class G1GCParPhaseTimesTracker : public CHeapObj<mtGC> {
381 protected:
382 Ticks _start_time;
383 G1GCPhaseTimes::GCParPhases _phase;
384 G1GCPhaseTimes* _phase_times;
385 uint _worker_id;
386 public:
387 G1GCParPhaseTimesTracker(G1GCPhaseTimes* phase_times, G1GCPhaseTimes::GCParPhases phase, uint worker_id);
388 virtual ~G1GCParPhaseTimesTracker();
389 };
390
391 class G1EvacPhaseTimesTracker : public G1GCParPhaseTimesTracker {
392 Tickspan _total_time;
393 Tickspan _trim_time;
394
395 G1EvacPhaseWithTrimTimeTracker _trim_tracker;
396 public:
397 G1EvacPhaseTimesTracker(G1GCPhaseTimes* phase_times, G1ParScanThreadState* pss, G1GCPhaseTimes::GCParPhases phase, uint worker_id);
398 virtual ~G1EvacPhaseTimesTracker();
399 };
400
401 #endif // SHARE_VM_GC_G1_G1GCPHASETIMES_HPP
|