OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/heap/gc-tracer.h" | 5 #include "src/heap/gc-tracer.h" |
6 | 6 |
7 #include "src/counters.h" | 7 #include "src/counters.h" |
8 #include "src/heap/heap-inl.h" | 8 #include "src/heap/heap-inl.h" |
9 #include "src/isolate.h" | 9 #include "src/isolate.h" |
10 | 10 |
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
198 cumulative_incremental_marking_bytes_; | 198 cumulative_incremental_marking_bytes_; |
199 current_.cumulative_pure_incremental_marking_duration = | 199 current_.cumulative_pure_incremental_marking_duration = |
200 cumulative_pure_incremental_marking_duration_; | 200 cumulative_pure_incremental_marking_duration_; |
201 | 201 |
202 for (int i = 0; i < Scope::NUMBER_OF_SCOPES; i++) { | 202 for (int i = 0; i < Scope::NUMBER_OF_SCOPES; i++) { |
203 current_.scopes[i] = 0; | 203 current_.scopes[i] = 0; |
204 } | 204 } |
205 | 205 |
206 int committed_memory = static_cast<int>(heap_->CommittedMemory() / KB); | 206 int committed_memory = static_cast<int>(heap_->CommittedMemory() / KB); |
207 int used_memory = static_cast<int>(current_.start_object_size / KB); | 207 int used_memory = static_cast<int>(current_.start_object_size / KB); |
208 heap_->isolate()->counters()->aggregated_memory_heap_committed()->AddSample( | 208 |
209 start_time, committed_memory); | 209 Counters* counters = heap_->isolate()->counters(); |
210 heap_->isolate()->counters()->aggregated_memory_heap_used()->AddSample( | 210 |
211 start_time, used_memory); | 211 if (collector == SCAVENGER) { |
| 212 counters->scavenge_reason()->AddSample(static_cast<int>(gc_reason)); |
| 213 } else { |
| 214 counters->mark_compact_reason()->AddSample(static_cast<int>(gc_reason)); |
| 215 } |
| 216 counters->aggregated_memory_heap_committed()->AddSample(start_time, |
| 217 committed_memory); |
| 218 counters->aggregated_memory_heap_used()->AddSample(start_time, used_memory); |
212 // TODO(cbruni): remove once we fully moved to a trace-based system. | 219 // TODO(cbruni): remove once we fully moved to a trace-based system. |
213 if (FLAG_runtime_call_stats) { | 220 if (FLAG_runtime_call_stats) { |
214 RuntimeCallStats::Enter(heap_->isolate()->counters()->runtime_call_stats(), | 221 RuntimeCallStats::Enter(heap_->isolate()->counters()->runtime_call_stats(), |
215 &timer_, &RuntimeCallStats::GC); | 222 &timer_, &RuntimeCallStats::GC); |
216 } | 223 } |
217 // TODO(lpy): Add a tracing equivalent for the runtime call stats. | 224 // TODO(lpy): Add a tracing equivalent for the runtime call stats. |
218 } | 225 } |
219 | 226 |
220 void GCTracer::MergeBaseline(const Event& baseline) { | 227 void GCTracer::MergeBaseline(const Event& baseline) { |
221 current_.incremental_marking_bytes = | 228 current_.incremental_marking_bytes = |
(...skipping 605 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
827 } | 834 } |
828 | 835 |
829 void GCTracer::ResetSurvivalEvents() { recorded_survival_ratios_.Reset(); } | 836 void GCTracer::ResetSurvivalEvents() { recorded_survival_ratios_.Reset(); } |
830 | 837 |
831 void GCTracer::NotifyIncrementalMarkingStart() { | 838 void GCTracer::NotifyIncrementalMarkingStart() { |
832 incremental_marking_start_time_ = heap_->MonotonicallyIncreasingTimeInMs(); | 839 incremental_marking_start_time_ = heap_->MonotonicallyIncreasingTimeInMs(); |
833 } | 840 } |
834 | 841 |
835 } // namespace internal | 842 } // namespace internal |
836 } // namespace v8 | 843 } // namespace v8 |
OLD | NEW |