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 258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
269 recorded_scavenges_survived_.Push(MakeBytesAndDuration( | 269 recorded_scavenges_survived_.Push(MakeBytesAndDuration( |
270 current_.survived_new_space_object_size, duration)); | 270 current_.survived_new_space_object_size, duration)); |
271 } else if (current_.type == Event::INCREMENTAL_MARK_COMPACTOR) { | 271 } else if (current_.type == Event::INCREMENTAL_MARK_COMPACTOR) { |
272 MergeBaseline(previous_incremental_mark_compactor_event_); | 272 MergeBaseline(previous_incremental_mark_compactor_event_); |
273 recorded_incremental_marking_steps_.Push( | 273 recorded_incremental_marking_steps_.Push( |
274 MakeBytesAndDuration(current_.incremental_marking_bytes, | 274 MakeBytesAndDuration(current_.incremental_marking_bytes, |
275 current_.pure_incremental_marking_duration)); | 275 current_.pure_incremental_marking_duration)); |
276 recorded_incremental_mark_compacts_.Push( | 276 recorded_incremental_mark_compacts_.Push( |
277 MakeBytesAndDuration(current_.start_object_size, duration)); | 277 MakeBytesAndDuration(current_.start_object_size, duration)); |
278 combined_mark_compact_speed_cache_ = 0.0; | 278 combined_mark_compact_speed_cache_ = 0.0; |
279 for (int i = 0; i <= Scope::NUMBER_OF_INCREMENTAL_SCOPES; i++) { | 279 for (int i = 0; i < Scope::NUMBER_OF_INCREMENTAL_SCOPES; i++) { |
280 incremental_marking_scopes_[i].ResetCurrentCycle(); | 280 incremental_marking_scopes_[i].ResetCurrentCycle(); |
281 } | 281 } |
282 } else { | 282 } else { |
283 DCHECK(current_.incremental_marking_bytes == 0); | 283 DCHECK(current_.incremental_marking_bytes == 0); |
284 DCHECK(current_.pure_incremental_marking_duration == 0); | 284 DCHECK(current_.pure_incremental_marking_duration == 0); |
285 recorded_mark_compacts_.Push( | 285 recorded_mark_compacts_.Push( |
286 MakeBytesAndDuration(current_.start_object_size, duration)); | 286 MakeBytesAndDuration(current_.start_object_size, duration)); |
287 combined_mark_compact_speed_cache_ = 0.0; | 287 combined_mark_compact_speed_cache_ = 0.0; |
288 for (int i = 0; i <= Scope::NUMBER_OF_INCREMENTAL_SCOPES; i++) { | 288 for (int i = 0; i < Scope::NUMBER_OF_INCREMENTAL_SCOPES; i++) { |
289 incremental_marking_scopes_[i].ResetCurrentCycle(); | 289 incremental_marking_scopes_[i].ResetCurrentCycle(); |
290 } | 290 } |
291 } | 291 } |
292 | 292 |
293 double spent_in_mutator = Max(current_.start_time - previous_.end_time, 0.0); | 293 double spent_in_mutator = Max(current_.start_time - previous_.end_time, 0.0); |
294 heap_->UpdateCumulativeGCStatistics(duration, spent_in_mutator, | 294 heap_->UpdateCumulativeGCStatistics(duration, spent_in_mutator, |
295 current_.scopes[Scope::MC_MARK]); | 295 current_.scopes[Scope::MC_MARK]); |
296 | 296 |
297 if (current_.type == Event::SCAVENGER && FLAG_trace_gc_ignore_scavenger) | 297 if (current_.type == Event::SCAVENGER && FLAG_trace_gc_ignore_scavenger) |
298 return; | 298 return; |
(...skipping 517 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
816 return sum / recorded_survival_ratios_.Count(); | 816 return sum / recorded_survival_ratios_.Count(); |
817 } | 817 } |
818 | 818 |
819 bool GCTracer::SurvivalEventsRecorded() const { | 819 bool GCTracer::SurvivalEventsRecorded() const { |
820 return recorded_survival_ratios_.Count() > 0; | 820 return recorded_survival_ratios_.Count() > 0; |
821 } | 821 } |
822 | 822 |
823 void GCTracer::ResetSurvivalEvents() { recorded_survival_ratios_.Reset(); } | 823 void GCTracer::ResetSurvivalEvents() { recorded_survival_ratios_.Reset(); } |
824 } // namespace internal | 824 } // namespace internal |
825 } // namespace v8 | 825 } // namespace v8 |
OLD | NEW |