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/platform/platform.h" | 8 #include "src/base/platform/platform.h" |
9 | 9 |
10 namespace v8 { | 10 namespace v8 { |
(...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
375 | 375 |
376 // Compute the average mark-sweep speed in bytes/millisecond. | 376 // Compute the average mark-sweep speed in bytes/millisecond. |
377 // Returns 0 if no events have been recorded. | 377 // Returns 0 if no events have been recorded. |
378 intptr_t MarkCompactSpeedInBytesPerMillisecond() const; | 378 intptr_t MarkCompactSpeedInBytesPerMillisecond() const; |
379 | 379 |
380 // Compute the average incremental mark-sweep finalize speed in | 380 // Compute the average incremental mark-sweep finalize speed in |
381 // bytes/millisecond. | 381 // bytes/millisecond. |
382 // Returns 0 if no events have been recorded. | 382 // Returns 0 if no events have been recorded. |
383 intptr_t FinalIncrementalMarkCompactSpeedInBytesPerMillisecond() const; | 383 intptr_t FinalIncrementalMarkCompactSpeedInBytesPerMillisecond() const; |
384 | 384 |
| 385 // Compute the overall mark compact speed including incremental steps |
| 386 // and the final mark-compact step. |
| 387 double CombinedMarkCompactSpeedInBytesPerMillisecond(); |
| 388 |
385 // Allocation throughput in the new space in bytes/millisecond. | 389 // Allocation throughput in the new space in bytes/millisecond. |
386 // Returns 0 if no allocation events have been recorded. | 390 // Returns 0 if no allocation events have been recorded. |
387 size_t NewSpaceAllocationThroughputInBytesPerMillisecond() const; | 391 size_t NewSpaceAllocationThroughputInBytesPerMillisecond( |
| 392 double time_ms = 0) const; |
| 393 |
| 394 // Allocation throughput in the old generation in bytes/millisecond in the |
| 395 // last time_ms milliseconds. |
| 396 // Returns 0 if no allocation events have been recorded. |
| 397 size_t OldGenerationAllocationThroughputInBytesPerMillisecond( |
| 398 double time_ms = 0) const; |
388 | 399 |
389 // Allocation throughput in heap in bytes/millisecond in the last time_ms | 400 // Allocation throughput in heap in bytes/millisecond in the last time_ms |
390 // milliseconds. | 401 // milliseconds. |
391 // Returns 0 if no allocation events have been recorded. | 402 // Returns 0 if no allocation events have been recorded. |
392 size_t AllocationThroughputInBytesPerMillisecond(double time_ms) const; | 403 size_t AllocationThroughputInBytesPerMillisecond(double time_ms) const; |
393 | 404 |
394 // Allocation throughput in heap in bytes/milliseconds in | 405 // Allocation throughput in heap in bytes/milliseconds in |
395 // the last five seconds. | 406 // the last five seconds. |
396 // Returns 0 if no allocation events have been recorded. | 407 // Returns 0 if no allocation events have been recorded. |
397 size_t CurrentAllocationThroughputInBytesPerMillisecond() const; | 408 size_t CurrentAllocationThroughputInBytesPerMillisecond() const; |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
459 EventBuffer scavenger_events_; | 470 EventBuffer scavenger_events_; |
460 | 471 |
461 // RingBuffers for MARK_COMPACTOR events. | 472 // RingBuffers for MARK_COMPACTOR events. |
462 EventBuffer mark_compactor_events_; | 473 EventBuffer mark_compactor_events_; |
463 | 474 |
464 // RingBuffers for INCREMENTAL_MARK_COMPACTOR events. | 475 // RingBuffers for INCREMENTAL_MARK_COMPACTOR events. |
465 EventBuffer incremental_mark_compactor_events_; | 476 EventBuffer incremental_mark_compactor_events_; |
466 | 477 |
467 // RingBuffer for allocation events. | 478 // RingBuffer for allocation events. |
468 AllocationEventBuffer new_space_allocation_events_; | 479 AllocationEventBuffer new_space_allocation_events_; |
469 AllocationEventBuffer allocation_events_; | 480 AllocationEventBuffer old_generation_allocation_events_; |
470 | 481 |
471 // RingBuffer for context disposal events. | 482 // RingBuffer for context disposal events. |
472 ContextDisposalEventBuffer context_disposal_events_; | 483 ContextDisposalEventBuffer context_disposal_events_; |
473 | 484 |
474 // RingBuffer for survival events. | 485 // RingBuffer for survival events. |
475 SurvivalEventBuffer survival_events_; | 486 SurvivalEventBuffer survival_events_; |
476 | 487 |
477 // Cumulative number of incremental marking steps since creation of tracer. | 488 // Cumulative number of incremental marking steps since creation of tracer. |
478 int cumulative_incremental_marking_steps_; | 489 int cumulative_incremental_marking_steps_; |
479 | 490 |
(...skipping 27 matching lines...) Expand all Loading... |
507 // Timestamp and allocation counter at the last sampled allocation event. | 518 // Timestamp and allocation counter at the last sampled allocation event. |
508 double allocation_time_ms_; | 519 double allocation_time_ms_; |
509 size_t new_space_allocation_counter_bytes_; | 520 size_t new_space_allocation_counter_bytes_; |
510 size_t old_generation_allocation_counter_bytes_; | 521 size_t old_generation_allocation_counter_bytes_; |
511 | 522 |
512 // Accumulated duration and allocated bytes since the last GC. | 523 // Accumulated duration and allocated bytes since the last GC. |
513 double allocation_duration_since_gc_; | 524 double allocation_duration_since_gc_; |
514 size_t new_space_allocation_in_bytes_since_gc_; | 525 size_t new_space_allocation_in_bytes_since_gc_; |
515 size_t old_generation_allocation_in_bytes_since_gc_; | 526 size_t old_generation_allocation_in_bytes_since_gc_; |
516 | 527 |
| 528 double combined_mark_compact_speed_cache_; |
| 529 |
517 // Counts how many tracers were started without stopping. | 530 // Counts how many tracers were started without stopping. |
518 int start_counter_; | 531 int start_counter_; |
519 | 532 |
520 DISALLOW_COPY_AND_ASSIGN(GCTracer); | 533 DISALLOW_COPY_AND_ASSIGN(GCTracer); |
521 }; | 534 }; |
522 } | 535 } |
523 } // namespace v8::internal | 536 } // namespace v8::internal |
524 | 537 |
525 #endif // V8_HEAP_GC_TRACER_H_ | 538 #endif // V8_HEAP_GC_TRACER_H_ |
OLD | NEW |