| 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 #ifndef V8_HEAP_GC_TRACER_H_ | 5 #ifndef V8_HEAP_GC_TRACER_H_ |
| 6 #define V8_HEAP_GC_TRACER_H_ | 6 #define V8_HEAP_GC_TRACER_H_ |
| 7 | 7 |
| 8 #include "src/base/compiler-specific.h" | 8 #include "src/base/compiler-specific.h" |
| 9 #include "src/base/platform/platform.h" | 9 #include "src/base/platform/platform.h" |
| 10 #include "src/counters.h" | 10 #include "src/counters.h" |
| (...skipping 363 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 374 // events. | 374 // events. |
| 375 // Returns 0 if no events have been recorded. | 375 // Returns 0 if no events have been recorded. |
| 376 double AverageSurvivalRatio() const; | 376 double AverageSurvivalRatio() const; |
| 377 | 377 |
| 378 // Returns true if at least one survival event was recorded. | 378 // Returns true if at least one survival event was recorded. |
| 379 bool SurvivalEventsRecorded() const; | 379 bool SurvivalEventsRecorded() const; |
| 380 | 380 |
| 381 // Discard all recorded survival events. | 381 // Discard all recorded survival events. |
| 382 void ResetSurvivalEvents(); | 382 void ResetSurvivalEvents(); |
| 383 | 383 |
| 384 void NotifyIncrementalMarkingStart(); |
| 385 |
| 384 V8_INLINE void AddScopeSample(Scope::ScopeId scope, double duration) { | 386 V8_INLINE void AddScopeSample(Scope::ScopeId scope, double duration) { |
| 385 DCHECK(scope < Scope::NUMBER_OF_SCOPES); | 387 DCHECK(scope < Scope::NUMBER_OF_SCOPES); |
| 386 if (scope >= Scope::FIRST_INCREMENTAL_SCOPE && | 388 if (scope >= Scope::FIRST_INCREMENTAL_SCOPE && |
| 387 scope <= Scope::LAST_INCREMENTAL_SCOPE) { | 389 scope <= Scope::LAST_INCREMENTAL_SCOPE) { |
| 388 incremental_marking_scopes_[scope].Update(duration); | 390 incremental_marking_scopes_[scope].Update(duration); |
| 389 } else { | 391 } else { |
| 390 current_.scopes[scope] += duration; | 392 current_.scopes[scope] += duration; |
| 391 } | 393 } |
| 392 } | 394 } |
| 393 | 395 |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 469 | 471 |
| 470 // Total sweeping time on the main thread. | 472 // Total sweeping time on the main thread. |
| 471 // This timer is precise when run with --print-cumulative-gc-stat | 473 // This timer is precise when run with --print-cumulative-gc-stat |
| 472 // TODO(hpayer): Account for sweeping time on sweeper threads. Add a | 474 // TODO(hpayer): Account for sweeping time on sweeper threads. Add a |
| 473 // different field for that. | 475 // different field for that. |
| 474 // TODO(hpayer): This timer right now just holds the sweeping time | 476 // TODO(hpayer): This timer right now just holds the sweeping time |
| 475 // of the initial atomic sweeping pause. Make sure that it accumulates | 477 // of the initial atomic sweeping pause. Make sure that it accumulates |
| 476 // all sweeping operations performed on the main thread. | 478 // all sweeping operations performed on the main thread. |
| 477 double cumulative_sweeping_duration_; | 479 double cumulative_sweeping_duration_; |
| 478 | 480 |
| 481 double incremental_marking_start_time_; |
| 482 |
| 479 // Timestamp and allocation counter at the last sampled allocation event. | 483 // Timestamp and allocation counter at the last sampled allocation event. |
| 480 double allocation_time_ms_; | 484 double allocation_time_ms_; |
| 481 size_t new_space_allocation_counter_bytes_; | 485 size_t new_space_allocation_counter_bytes_; |
| 482 size_t old_generation_allocation_counter_bytes_; | 486 size_t old_generation_allocation_counter_bytes_; |
| 483 | 487 |
| 484 // Accumulated duration and allocated bytes since the last GC. | 488 // Accumulated duration and allocated bytes since the last GC. |
| 485 double allocation_duration_since_gc_; | 489 double allocation_duration_since_gc_; |
| 486 size_t new_space_allocation_in_bytes_since_gc_; | 490 size_t new_space_allocation_in_bytes_since_gc_; |
| 487 size_t old_generation_allocation_in_bytes_since_gc_; | 491 size_t old_generation_allocation_in_bytes_since_gc_; |
| 488 | 492 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 504 RingBuffer<BytesAndDuration> recorded_old_generation_allocations_; | 508 RingBuffer<BytesAndDuration> recorded_old_generation_allocations_; |
| 505 RingBuffer<double> recorded_context_disposal_times_; | 509 RingBuffer<double> recorded_context_disposal_times_; |
| 506 RingBuffer<double> recorded_survival_ratios_; | 510 RingBuffer<double> recorded_survival_ratios_; |
| 507 | 511 |
| 508 DISALLOW_COPY_AND_ASSIGN(GCTracer); | 512 DISALLOW_COPY_AND_ASSIGN(GCTracer); |
| 509 }; | 513 }; |
| 510 } // namespace internal | 514 } // namespace internal |
| 511 } // namespace v8 | 515 } // namespace v8 |
| 512 | 516 |
| 513 #endif // V8_HEAP_GC_TRACER_H_ | 517 #endif // V8_HEAP_GC_TRACER_H_ |
| OLD | NEW |