| 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 679 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 690   EventBuffer::const_iterator iter = events.begin(); | 690   EventBuffer::const_iterator iter = events.begin(); | 
| 691   while (iter != events.end()) { | 691   while (iter != events.end()) { | 
| 692     maximum = Max(iter->end_time - iter->start_time, maximum); | 692     maximum = Max(iter->end_time - iter->start_time, maximum); | 
| 693     ++iter; | 693     ++iter; | 
| 694   } | 694   } | 
| 695 | 695 | 
| 696   return maximum; | 696   return maximum; | 
| 697 } | 697 } | 
| 698 | 698 | 
| 699 | 699 | 
| 700 double GCTracer::MeanIncrementalMarkingDuration() const { |  | 
| 701   if (cumulative_incremental_marking_steps_ == 0) return 0.0; |  | 
| 702 |  | 
| 703   // We haven't completed an entire round of incremental marking, yet. |  | 
| 704   // Use data from GCTracer instead of data from event buffers. |  | 
| 705   if (incremental_mark_compactor_events_.empty()) { |  | 
| 706     return cumulative_incremental_marking_duration_ / |  | 
| 707            cumulative_incremental_marking_steps_; |  | 
| 708   } |  | 
| 709 |  | 
| 710   int steps = 0; |  | 
| 711   double durations = 0.0; |  | 
| 712   EventBuffer::const_iterator iter = incremental_mark_compactor_events_.begin(); |  | 
| 713   while (iter != incremental_mark_compactor_events_.end()) { |  | 
| 714     steps += iter->incremental_marking_steps; |  | 
| 715     durations += iter->incremental_marking_duration; |  | 
| 716     ++iter; |  | 
| 717   } |  | 
| 718 |  | 
| 719   if (steps == 0) return 0.0; |  | 
| 720 |  | 
| 721   return durations / steps; |  | 
| 722 } |  | 
| 723 |  | 
| 724 |  | 
| 725 double GCTracer::MaxIncrementalMarkingDuration() const { |  | 
| 726   // We haven't completed an entire round of incremental marking, yet. |  | 
| 727   // Use data from GCTracer instead of data from event buffers. |  | 
| 728   if (incremental_mark_compactor_events_.empty()) |  | 
| 729     return longest_incremental_marking_step_; |  | 
| 730 |  | 
| 731   double max_duration = 0.0; |  | 
| 732   EventBuffer::const_iterator iter = incremental_mark_compactor_events_.begin(); |  | 
| 733   while (iter != incremental_mark_compactor_events_.end()) |  | 
| 734     max_duration = Max(iter->longest_incremental_marking_step, max_duration); |  | 
| 735 |  | 
| 736   return max_duration; |  | 
| 737 } |  | 
| 738 |  | 
| 739 |  | 
| 740 intptr_t GCTracer::IncrementalMarkingSpeedInBytesPerMillisecond() const { | 700 intptr_t GCTracer::IncrementalMarkingSpeedInBytesPerMillisecond() const { | 
| 741   if (cumulative_incremental_marking_duration_ == 0.0) return 0; | 701   if (cumulative_incremental_marking_duration_ == 0.0) return 0; | 
| 742 | 702 | 
| 743   // We haven't completed an entire round of incremental marking, yet. | 703   // We haven't completed an entire round of incremental marking, yet. | 
| 744   // Use data from GCTracer instead of data from event buffers. | 704   // Use data from GCTracer instead of data from event buffers. | 
| 745   if (incremental_mark_compactor_events_.empty()) { | 705   if (incremental_mark_compactor_events_.empty()) { | 
| 746     return static_cast<intptr_t>(cumulative_incremental_marking_bytes_ / | 706     return static_cast<intptr_t>(cumulative_incremental_marking_bytes_ / | 
| 747                                  cumulative_pure_incremental_marking_duration_); | 707                                  cumulative_pure_incremental_marking_duration_); | 
| 748   } | 708   } | 
| 749 | 709 | 
| (...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 942 | 902 | 
| 943 | 903 | 
| 944 bool GCTracer::SurvivalEventsRecorded() const { | 904 bool GCTracer::SurvivalEventsRecorded() const { | 
| 945   return survival_events_.size() > 0; | 905   return survival_events_.size() > 0; | 
| 946 } | 906 } | 
| 947 | 907 | 
| 948 | 908 | 
| 949 void GCTracer::ResetSurvivalEvents() { survival_events_.reset(); } | 909 void GCTracer::ResetSurvivalEvents() { survival_events_.reset(); } | 
| 950 }  // namespace internal | 910 }  // namespace internal | 
| 951 }  // namespace v8 | 911 }  // namespace v8 | 
| OLD | NEW | 
|---|