72 |
72 |
73 class PhaseTraceTime: public TraceTime { |
73 class PhaseTraceTime: public TraceTime { |
74 private: |
74 private: |
75 JavaThread* _thread; |
75 JavaThread* _thread; |
76 CompileLog* _log; |
76 CompileLog* _log; |
|
77 TimerName _timer; |
77 |
78 |
78 public: |
79 public: |
79 PhaseTraceTime(TimerName timer) |
80 PhaseTraceTime(TimerName timer) |
80 : TraceTime("", &timers[timer], CITime || CITimeEach, Verbose), _log(NULL) { |
81 : TraceTime("", &timers[timer], CITime || CITimeEach, Verbose), |
|
82 _log(NULL), _timer(timer) |
|
83 { |
81 if (Compilation::current() != NULL) { |
84 if (Compilation::current() != NULL) { |
82 _log = Compilation::current()->log(); |
85 _log = Compilation::current()->log(); |
83 } |
86 } |
84 |
87 |
85 if (_log != NULL) { |
88 if (_log != NULL) { |
86 _log->begin_head("phase name='%s'", timer_name[timer]); |
89 _log->begin_head("phase name='%s'", timer_name[_timer]); |
87 _log->stamp(); |
90 _log->stamp(); |
88 _log->end_head(); |
91 _log->end_head(); |
89 } |
92 } |
90 } |
93 } |
91 |
94 |
92 ~PhaseTraceTime() { |
95 ~PhaseTraceTime() { |
93 if (_log != NULL) |
96 if (_log != NULL) |
94 _log->done("phase"); |
97 _log->done("phase name='%s'", timer_name[_timer]); |
95 } |
98 } |
96 }; |
99 }; |
97 |
100 |
98 // Implementation of Compilation |
101 // Implementation of Compilation |
99 |
102 |