OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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/incremental-marking.h" | 5 #include "src/heap/incremental-marking.h" |
6 | 6 |
7 #include "src/code-stubs.h" | 7 #include "src/code-stubs.h" |
8 #include "src/compilation-cache.h" | 8 #include "src/compilation-cache.h" |
9 #include "src/conversions.h" | 9 #include "src/conversions.h" |
10 #include "src/heap/gc-idle-time-handler.h" | 10 #include "src/heap/gc-idle-time-handler.h" |
(...skipping 479 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
490 if (CodeStub::MajorKeyFromKey(key) == CodeStub::RecordWrite) { | 490 if (CodeStub::MajorKeyFromKey(key) == CodeStub::RecordWrite) { |
491 Object* e = stubs->ValueAt(i); | 491 Object* e = stubs->ValueAt(i); |
492 if (e->IsCode()) { | 492 if (e->IsCode()) { |
493 RecordWriteStub::Patch(Code::cast(e), mode); | 493 RecordWriteStub::Patch(Code::cast(e), mode); |
494 } | 494 } |
495 } | 495 } |
496 } | 496 } |
497 } | 497 } |
498 } | 498 } |
499 | 499 |
500 | 500 void IncrementalMarking::Start(GarbageCollectionReason gc_reason) { |
501 void IncrementalMarking::Start(const char* reason) { | |
502 if (FLAG_trace_incremental_marking) { | 501 if (FLAG_trace_incremental_marking) { |
503 int old_generation_size_mb = | 502 int old_generation_size_mb = |
504 static_cast<int>(heap()->PromotedSpaceSizeOfObjects() / MB); | 503 static_cast<int>(heap()->PromotedSpaceSizeOfObjects() / MB); |
505 int old_generation_limit_mb = | 504 int old_generation_limit_mb = |
506 static_cast<int>(heap()->old_generation_allocation_limit() / MB); | 505 static_cast<int>(heap()->old_generation_allocation_limit() / MB); |
507 heap()->isolate()->PrintWithTimestamp( | 506 heap()->isolate()->PrintWithTimestamp( |
508 "[IncrementalMarking] Start (%s): old generation %dMB, limit %dMB, " | 507 "[IncrementalMarking] Start (%s): old generation %dMB, limit %dMB, " |
509 "slack %dMB\n", | 508 "slack %dMB\n", |
510 (reason == nullptr) ? "unknown reason" : reason, old_generation_size_mb, | 509 Heap::GarbageCollectionReasonToString(gc_reason), |
511 old_generation_limit_mb, | 510 old_generation_size_mb, old_generation_limit_mb, |
512 Max(0, old_generation_limit_mb - old_generation_size_mb)); | 511 Max(0, old_generation_limit_mb - old_generation_size_mb)); |
513 } | 512 } |
514 DCHECK(FLAG_incremental_marking); | 513 DCHECK(FLAG_incremental_marking); |
515 DCHECK(state_ == STOPPED); | 514 DCHECK(state_ == STOPPED); |
516 DCHECK(heap_->gc_state() == Heap::NOT_IN_GC); | 515 DCHECK(heap_->gc_state() == Heap::NOT_IN_GC); |
517 DCHECK(!heap_->isolate()->serializer_enabled()); | 516 DCHECK(!heap_->isolate()->serializer_enabled()); |
518 | 517 |
519 HistogramTimerScope incremental_marking_scope( | 518 HistogramTimerScope incremental_marking_scope( |
520 heap_->isolate()->counters()->gc_incremental_marking_start()); | 519 heap_->isolate()->counters()->gc_incremental_marking_start()); |
521 TRACE_EVENT0("v8", "V8.GCIncrementalMarkingStart"); | 520 TRACE_EVENT0("v8", "V8.GCIncrementalMarkingStart"); |
(...skipping 766 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1288 idle_marking_delay_counter_++; | 1287 idle_marking_delay_counter_++; |
1289 } | 1288 } |
1290 | 1289 |
1291 | 1290 |
1292 void IncrementalMarking::ClearIdleMarkingDelayCounter() { | 1291 void IncrementalMarking::ClearIdleMarkingDelayCounter() { |
1293 idle_marking_delay_counter_ = 0; | 1292 idle_marking_delay_counter_ = 0; |
1294 } | 1293 } |
1295 | 1294 |
1296 } // namespace internal | 1295 } // namespace internal |
1297 } // namespace v8 | 1296 } // namespace v8 |
OLD | NEW |