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/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
7 #include "src/incremental-marking.h" | 7 #include "src/incremental-marking.h" |
8 | 8 |
9 #include "src/code-stubs.h" | 9 #include "src/code-stubs.h" |
10 #include "src/compilation-cache.h" | 10 #include "src/compilation-cache.h" |
(...skipping 518 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
529 } | 529 } |
530 ASSERT(FLAG_incremental_marking); | 530 ASSERT(FLAG_incremental_marking); |
531 ASSERT(FLAG_incremental_marking_steps); | 531 ASSERT(FLAG_incremental_marking_steps); |
532 ASSERT(state_ == STOPPED); | 532 ASSERT(state_ == STOPPED); |
533 ASSERT(heap_->gc_state() == Heap::NOT_IN_GC); | 533 ASSERT(heap_->gc_state() == Heap::NOT_IN_GC); |
534 ASSERT(!heap_->isolate()->serializer_enabled()); | 534 ASSERT(!heap_->isolate()->serializer_enabled()); |
535 ASSERT(heap_->isolate()->IsInitialized()); | 535 ASSERT(heap_->isolate()->IsInitialized()); |
536 | 536 |
537 ResetStepCounters(); | 537 ResetStepCounters(); |
538 | 538 |
539 if (!heap_->mark_compact_collector()->IsConcurrentSweepingInProgress()) { | 539 if (!heap_->mark_compact_collector()->sweeping_in_progress()) { |
540 StartMarking(flag); | 540 StartMarking(flag); |
541 } else { | 541 } else { |
542 if (FLAG_trace_incremental_marking) { | 542 if (FLAG_trace_incremental_marking) { |
543 PrintF("[IncrementalMarking] Start sweeping.\n"); | 543 PrintF("[IncrementalMarking] Start sweeping.\n"); |
544 } | 544 } |
545 state_ = SWEEPING; | 545 state_ = SWEEPING; |
546 } | 546 } |
547 | 547 |
548 heap_->new_space()->LowerInlineAllocationLimit(kAllocatedThreshold); | 548 heap_->new_space()->LowerInlineAllocationLimit(kAllocatedThreshold); |
549 } | 549 } |
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
876 bytes_scanned_ += bytes_to_process; | 876 bytes_scanned_ += bytes_to_process; |
877 | 877 |
878 double start = 0; | 878 double start = 0; |
879 | 879 |
880 if (FLAG_trace_incremental_marking || FLAG_trace_gc || | 880 if (FLAG_trace_incremental_marking || FLAG_trace_gc || |
881 FLAG_print_cumulative_gc_stat) { | 881 FLAG_print_cumulative_gc_stat) { |
882 start = base::OS::TimeCurrentMillis(); | 882 start = base::OS::TimeCurrentMillis(); |
883 } | 883 } |
884 | 884 |
885 if (state_ == SWEEPING) { | 885 if (state_ == SWEEPING) { |
886 if (heap_->mark_compact_collector()->IsConcurrentSweepingInProgress() && | 886 if (heap_->mark_compact_collector()->sweeping_in_progress() && |
887 heap_->mark_compact_collector()->IsSweepingCompleted()) { | 887 heap_->mark_compact_collector()->IsSweepingCompleted()) { |
888 heap_->mark_compact_collector()->WaitUntilSweepingCompleted(); | 888 heap_->mark_compact_collector()->EnsureSweepingCompleted(); |
889 } | 889 } |
890 if (!heap_->mark_compact_collector()->IsConcurrentSweepingInProgress()) { | 890 if (!heap_->mark_compact_collector()->sweeping_in_progress()) { |
891 bytes_scanned_ = 0; | 891 bytes_scanned_ = 0; |
892 StartMarking(PREVENT_COMPACTION); | 892 StartMarking(PREVENT_COMPACTION); |
893 } | 893 } |
894 } else if (state_ == MARKING) { | 894 } else if (state_ == MARKING) { |
895 ProcessMarkingDeque(bytes_to_process); | 895 ProcessMarkingDeque(bytes_to_process); |
896 if (marking_deque_.IsEmpty()) MarkingComplete(action); | 896 if (marking_deque_.IsEmpty()) MarkingComplete(action); |
897 } | 897 } |
898 | 898 |
899 steps_count_++; | 899 steps_count_++; |
900 steps_count_since_last_gc_++; | 900 steps_count_since_last_gc_++; |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
989 bytes_scanned_ = 0; | 989 bytes_scanned_ = 0; |
990 write_barriers_invoked_since_last_step_ = 0; | 990 write_barriers_invoked_since_last_step_ = 0; |
991 } | 991 } |
992 | 992 |
993 | 993 |
994 int64_t IncrementalMarking::SpaceLeftInOldSpace() { | 994 int64_t IncrementalMarking::SpaceLeftInOldSpace() { |
995 return heap_->MaxOldGenerationSize() - heap_->PromotedSpaceSizeOfObjects(); | 995 return heap_->MaxOldGenerationSize() - heap_->PromotedSpaceSizeOfObjects(); |
996 } | 996 } |
997 | 997 |
998 } } // namespace v8::internal | 998 } } // namespace v8::internal |
OLD | NEW |