src/share/vm/gc_implementation/shared/gcTimer.hpp

changeset 6131
86e6d691f2e1
parent 5237
f2110083203d
child 6876
710a3c8b516e
     1.1 --- a/src/share/vm/gc_implementation/shared/gcTimer.hpp	Sat Nov 23 09:56:59 2013 +0100
     1.2 +++ b/src/share/vm/gc_implementation/shared/gcTimer.hpp	Sat Nov 23 12:25:13 2013 +0100
     1.3 @@ -28,6 +28,7 @@
     1.4  #include "memory/allocation.hpp"
     1.5  #include "prims/jni_md.h"
     1.6  #include "utilities/macros.hpp"
     1.7 +#include "utilities/ticks.hpp"
     1.8  
     1.9  class ConcurrentPhase;
    1.10  class GCPhase;
    1.11 @@ -45,21 +46,21 @@
    1.12  class GCPhase {
    1.13    const char* _name;
    1.14    int _level;
    1.15 -  jlong _start;
    1.16 -  jlong _end;
    1.17 +  Ticks _start;
    1.18 +  Ticks _end;
    1.19  
    1.20   public:
    1.21    void set_name(const char* name) { _name = name; }
    1.22 -  const char* name() { return _name; }
    1.23 +  const char* name() const { return _name; }
    1.24  
    1.25 -  int level() { return _level; }
    1.26 +  int level() const { return _level; }
    1.27    void set_level(int level) { _level = level; }
    1.28  
    1.29 -  jlong start() { return _start; }
    1.30 -  void set_start(jlong time) { _start = time; }
    1.31 +  const Ticks start() const { return _start; }
    1.32 +  void set_start(const Ticks& time) { _start = time; }
    1.33  
    1.34 -  jlong end() { return _end; }
    1.35 -  void set_end(jlong time) { _end = time; }
    1.36 +  const Ticks end() const { return _end; }
    1.37 +  void set_end(const Ticks& time) { _end = time; }
    1.38  
    1.39    virtual void accept(PhaseVisitor* visitor) = 0;
    1.40  };
    1.41 @@ -102,22 +103,22 @@
    1.42    GrowableArray<PausePhase>* _phases;
    1.43    PhasesStack _active_phases;
    1.44  
    1.45 -  jlong _sum_of_pauses;
    1.46 -  jlong _longest_pause;
    1.47 +  Tickspan _sum_of_pauses;
    1.48 +  Tickspan _longest_pause;
    1.49  
    1.50   public:
    1.51    TimePartitions();
    1.52    ~TimePartitions();
    1.53    void clear();
    1.54  
    1.55 -  void report_gc_phase_start(const char* name, jlong time);
    1.56 -  void report_gc_phase_end(jlong time);
    1.57 +  void report_gc_phase_start(const char* name, const Ticks& time);
    1.58 +  void report_gc_phase_end(const Ticks& time);
    1.59  
    1.60    int num_phases() const;
    1.61    GCPhase* phase_at(int index) const;
    1.62  
    1.63 -  jlong sum_of_pauses();
    1.64 -  jlong longest_pause();
    1.65 +  const Tickspan sum_of_pauses() const { return _sum_of_pauses; }
    1.66 +  const Tickspan longest_pause() const { return _longest_pause; }
    1.67  
    1.68    bool has_active_phases();
    1.69   private:
    1.70 @@ -133,40 +134,37 @@
    1.71  class GCTimer : public ResourceObj {
    1.72    NOT_PRODUCT(friend class GCTimerTest;)
    1.73   protected:
    1.74 -  jlong _gc_start;
    1.75 -  jlong _gc_end;
    1.76 +  Ticks _gc_start;
    1.77 +  Ticks _gc_end;
    1.78    TimePartitions _time_partitions;
    1.79  
    1.80   public:
    1.81 -  virtual void register_gc_start(jlong time);
    1.82 -  virtual void register_gc_end(jlong time);
    1.83 +  virtual void register_gc_start(const Ticks& time = Ticks::now());
    1.84 +  virtual void register_gc_end(const Ticks& time = Ticks::now());
    1.85  
    1.86 -  void register_gc_phase_start(const char* name, jlong time);
    1.87 -  void register_gc_phase_end(jlong time);
    1.88 +  void register_gc_phase_start(const char* name, const Ticks& time);
    1.89 +  void register_gc_phase_end(const Ticks& time);
    1.90  
    1.91 -  jlong gc_start() { return _gc_start; }
    1.92 -  jlong gc_end() { return _gc_end; }
    1.93 +  const Ticks gc_start() const { return _gc_start; }
    1.94 +  const Ticks gc_end() const { return _gc_end; }
    1.95  
    1.96    TimePartitions* time_partitions() { return &_time_partitions; }
    1.97  
    1.98 -  long longest_pause();
    1.99 -  long sum_of_pauses();
   1.100 -
   1.101   protected:
   1.102 -  void register_gc_pause_start(const char* name, jlong time);
   1.103 -  void register_gc_pause_end(jlong time);
   1.104 +  void register_gc_pause_start(const char* name, const Ticks& time = Ticks::now());
   1.105 +  void register_gc_pause_end(const Ticks& time = Ticks::now());
   1.106  };
   1.107  
   1.108  class STWGCTimer : public GCTimer {
   1.109   public:
   1.110 -  virtual void register_gc_start(jlong time);
   1.111 -  virtual void register_gc_end(jlong time);
   1.112 +  virtual void register_gc_start(const Ticks& time = Ticks::now());
   1.113 +  virtual void register_gc_end(const Ticks& time = Ticks::now());
   1.114  };
   1.115  
   1.116  class ConcurrentGCTimer : public GCTimer {
   1.117   public:
   1.118 -  void register_gc_pause_start(const char* name, jlong time);
   1.119 -  void register_gc_pause_end(jlong time);
   1.120 +  void register_gc_pause_start(const char* name);
   1.121 +  void register_gc_pause_end();
   1.122  };
   1.123  
   1.124  class TimePartitionPhasesIterator {

mercurial