Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(707)

Side by Side Diff: src/heap/gc-tracer.cc

Issue 1988623002: Ensure black and gray objects are kept around by scavenger (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Cleanup Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/heap/gc-tracer.h ('k') | src/heap/heap.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 458 matching lines...) Expand 10 before | Expand all | Expand 10 after
469 469
470 470
471 void GCTracer::PrintNVP() const { 471 void GCTracer::PrintNVP() const {
472 double duration = current_.end_time - current_.start_time; 472 double duration = current_.end_time - current_.start_time;
473 double spent_in_mutator = current_.start_time - previous_.end_time; 473 double spent_in_mutator = current_.start_time - previous_.end_time;
474 intptr_t allocated_since_last_gc = 474 intptr_t allocated_since_last_gc =
475 current_.start_object_size - previous_.end_object_size; 475 current_.start_object_size - previous_.end_object_size;
476 476
477 switch (current_.type) { 477 switch (current_.type) {
478 case Event::SCAVENGER: 478 case Event::SCAVENGER:
479 PrintIsolate(heap_->isolate(), 479 PrintIsolate(
480 "%8.0f ms: " 480 heap_->isolate(),
481 "pause=%.1f " 481 "%8.0f ms: "
482 "mutator=%.1f " 482 "pause=%.1f "
483 "gc=%s " 483 "mutator=%.1f "
484 "reduce_memory=%d " 484 "gc=%s "
485 "scavenge=%.2f " 485 "reduce_memory=%d "
486 "old_new=%.2f " 486 "scavenge=%.2f "
487 "weak=%.2f " 487 "revive_marked_objects=%.2f "
488 "roots=%.2f " 488 "old_new=%.2f "
489 "code=%.2f " 489 "weak=%.2f "
490 "semispace=%.2f " 490 "roots=%.2f "
491 "object_groups=%.2f " 491 "code=%.2f "
492 "external_prologue=%.2f " 492 "semispace=%.2f "
493 "external_epilogue=%.2f " 493 "object_groups=%.2f "
494 "external_weak_global_handles=%.2f " 494 "external_prologue=%.2f "
495 "steps_count=%d " 495 "external_epilogue=%.2f "
496 "steps_took=%.1f " 496 "external_weak_global_handles=%.2f "
497 "scavenge_throughput=%.f " 497 "steps_count=%d "
498 "total_size_before=%" V8PRIdPTR 498 "steps_took=%.1f "
499 " " 499 "scavenge_throughput=%.f "
500 "total_size_after=%" V8PRIdPTR 500 "total_size_before=%" V8PRIdPTR
501 " " 501 " "
502 "holes_size_before=%" V8PRIdPTR 502 "total_size_after=%" V8PRIdPTR
503 " " 503 " "
504 "holes_size_after=%" V8PRIdPTR 504 "holes_size_before=%" V8PRIdPTR
505 " " 505 " "
506 "allocated=%" V8PRIdPTR 506 "holes_size_after=%" V8PRIdPTR
507 " " 507 " "
508 "promoted=%" V8PRIdPTR 508 "allocated=%" V8PRIdPTR
509 " " 509 " "
510 "semi_space_copied=%" V8PRIdPTR 510 "promoted=%" V8PRIdPTR
511 " " 511 " "
512 "nodes_died_in_new=%d " 512 "semi_space_copied=%" V8PRIdPTR
513 "nodes_copied_in_new=%d " 513 " "
514 "nodes_promoted=%d " 514 "nodes_died_in_new=%d "
515 "promotion_ratio=%.1f%% " 515 "nodes_copied_in_new=%d "
516 "average_survival_ratio=%.1f%% " 516 "nodes_promoted=%d "
517 "promotion_rate=%.1f%% " 517 "promotion_ratio=%.1f%% "
518 "semi_space_copy_rate=%.1f%% " 518 "average_survival_ratio=%.1f%% "
519 "new_space_allocation_throughput=%.1f " 519 "promotion_rate=%.1f%% "
520 "context_disposal_rate=%.1f\n", 520 "semi_space_copy_rate=%.1f%% "
521 heap_->isolate()->time_millis_since_init(), duration, 521 "new_space_allocation_throughput=%.1f "
522 spent_in_mutator, current_.TypeName(true), 522 "context_disposal_rate=%.1f\n",
523 current_.reduce_memory, 523 heap_->isolate()->time_millis_since_init(), duration,
524 current_.scopes[Scope::SCAVENGER_SCAVENGE], 524 spent_in_mutator, current_.TypeName(true), current_.reduce_memory,
525 current_.scopes[Scope::SCAVENGER_OLD_TO_NEW_POINTERS], 525 current_.scopes[Scope::SCAVENGER_SCAVENGE],
526 current_.scopes[Scope::SCAVENGER_WEAK], 526 current_.scopes[Scope::SCAVENGER_OBJECTS_MARKED_BY_MARK_COMPACT],
527 current_.scopes[Scope::SCAVENGER_ROOTS], 527 current_.scopes[Scope::SCAVENGER_OLD_TO_NEW_POINTERS],
528 current_.scopes[Scope::SCAVENGER_CODE_FLUSH_CANDIDATES], 528 current_.scopes[Scope::SCAVENGER_WEAK],
529 current_.scopes[Scope::SCAVENGER_SEMISPACE], 529 current_.scopes[Scope::SCAVENGER_ROOTS],
530 current_.scopes[Scope::SCAVENGER_OBJECT_GROUPS], 530 current_.scopes[Scope::SCAVENGER_CODE_FLUSH_CANDIDATES],
531 current_.scopes[Scope::SCAVENGER_EXTERNAL_PROLOGUE], 531 current_.scopes[Scope::SCAVENGER_SEMISPACE],
532 current_.scopes[Scope::SCAVENGER_EXTERNAL_EPILOGUE], 532 current_.scopes[Scope::SCAVENGER_OBJECT_GROUPS],
533 current_.scopes[Scope::EXTERNAL_WEAK_GLOBAL_HANDLES], 533 current_.scopes[Scope::SCAVENGER_EXTERNAL_PROLOGUE],
534 current_.incremental_marking_steps, 534 current_.scopes[Scope::SCAVENGER_EXTERNAL_EPILOGUE],
535 current_.incremental_marking_duration, 535 current_.scopes[Scope::EXTERNAL_WEAK_GLOBAL_HANDLES],
536 ScavengeSpeedInBytesPerMillisecond(), 536 current_.incremental_marking_steps,
537 current_.start_object_size, current_.end_object_size, 537 current_.incremental_marking_duration,
538 current_.start_holes_size, current_.end_holes_size, 538 ScavengeSpeedInBytesPerMillisecond(), current_.start_object_size,
539 allocated_since_last_gc, heap_->promoted_objects_size(), 539 current_.end_object_size, current_.start_holes_size,
540 heap_->semi_space_copied_object_size(), 540 current_.end_holes_size, allocated_since_last_gc,
541 heap_->nodes_died_in_new_space_, 541 heap_->promoted_objects_size(),
542 heap_->nodes_copied_in_new_space_, heap_->nodes_promoted_, 542 heap_->semi_space_copied_object_size(),
543 heap_->promotion_ratio_, AverageSurvivalRatio(), 543 heap_->nodes_died_in_new_space_, heap_->nodes_copied_in_new_space_,
544 heap_->promotion_rate_, heap_->semi_space_copied_rate_, 544 heap_->nodes_promoted_, heap_->promotion_ratio_,
545 NewSpaceAllocationThroughputInBytesPerMillisecond(), 545 AverageSurvivalRatio(), heap_->promotion_rate_,
546 ContextDisposalRateInMilliseconds()); 546 heap_->semi_space_copied_rate_,
547 NewSpaceAllocationThroughputInBytesPerMillisecond(),
548 ContextDisposalRateInMilliseconds());
547 break; 549 break;
548 case Event::MARK_COMPACTOR: 550 case Event::MARK_COMPACTOR:
549 case Event::INCREMENTAL_MARK_COMPACTOR: 551 case Event::INCREMENTAL_MARK_COMPACTOR:
550 PrintIsolate( 552 PrintIsolate(
551 heap_->isolate(), 553 heap_->isolate(),
552 "%8.0f ms: " 554 "%8.0f ms: "
553 "pause=%.1f " 555 "pause=%.1f "
554 "mutator=%.1f " 556 "mutator=%.1f "
555 "gc=%s " 557 "gc=%s "
556 "reduce_memory=%d " 558 "reduce_memory=%d "
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after
813 return sum / recorded_survival_ratios_.Count(); 815 return sum / recorded_survival_ratios_.Count();
814 } 816 }
815 817
816 bool GCTracer::SurvivalEventsRecorded() const { 818 bool GCTracer::SurvivalEventsRecorded() const {
817 return recorded_survival_ratios_.Count() > 0; 819 return recorded_survival_ratios_.Count() > 0;
818 } 820 }
819 821
820 void GCTracer::ResetSurvivalEvents() { recorded_survival_ratios_.Reset(); } 822 void GCTracer::ResetSurvivalEvents() { recorded_survival_ratios_.Reset(); }
821 } // namespace internal 823 } // namespace internal
822 } // namespace v8 824 } // namespace v8
OLDNEW
« no previous file with comments | « src/heap/gc-tracer.h ('k') | src/heap/heap.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698