| 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/heap.h" | 5 #include "src/heap/heap.h" |
| 6 | 6 |
| 7 #include "src/accessors.h" | 7 #include "src/accessors.h" |
| 8 #include "src/api.h" | 8 #include "src/api.h" |
| 9 #include "src/ast/context-slot-cache.h" | 9 #include "src/ast/context-slot-cache.h" |
| 10 #include "src/base/bits.h" | 10 #include "src/base/bits.h" |
| (...skipping 4184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4195 embedder_heap_tracer()->NumberOfWrappersToTrace() == 0)); | 4195 embedder_heap_tracer()->NumberOfWrappersToTrace() == 0)); |
| 4196 } | 4196 } |
| 4197 | 4197 |
| 4198 void Heap::FinalizeIncrementalMarkingIfComplete( | 4198 void Heap::FinalizeIncrementalMarkingIfComplete( |
| 4199 GarbageCollectionReason gc_reason) { | 4199 GarbageCollectionReason gc_reason) { |
| 4200 if (incremental_marking()->IsMarking() && | 4200 if (incremental_marking()->IsMarking() && |
| 4201 (incremental_marking()->IsReadyToOverApproximateWeakClosure() || | 4201 (incremental_marking()->IsReadyToOverApproximateWeakClosure() || |
| 4202 (!incremental_marking()->finalize_marking_completed() && | 4202 (!incremental_marking()->finalize_marking_completed() && |
| 4203 MarkingDequesAreEmpty()))) { | 4203 MarkingDequesAreEmpty()))) { |
| 4204 FinalizeIncrementalMarking(gc_reason); | 4204 FinalizeIncrementalMarking(gc_reason); |
| 4205 } else if (incremental_marking()->IsComplete() || | 4205 } else if (incremental_marking()->IsComplete() || MarkingDequesAreEmpty()) { |
| 4206 (mark_compact_collector()->marking_deque()->IsEmpty())) { | |
| 4207 CollectAllGarbage(current_gc_flags_, gc_reason); | 4206 CollectAllGarbage(current_gc_flags_, gc_reason); |
| 4208 } | 4207 } |
| 4209 } | 4208 } |
| 4210 | 4209 |
| 4211 bool Heap::TryFinalizeIdleIncrementalMarking( | 4210 bool Heap::TryFinalizeIdleIncrementalMarking( |
| 4212 double idle_time_in_ms, GarbageCollectionReason gc_reason) { | 4211 double idle_time_in_ms, GarbageCollectionReason gc_reason) { |
| 4213 size_t size_of_objects = static_cast<size_t>(SizeOfObjects()); | 4212 size_t size_of_objects = static_cast<size_t>(SizeOfObjects()); |
| 4214 double final_incremental_mark_compact_speed_in_bytes_per_ms = | 4213 double final_incremental_mark_compact_speed_in_bytes_per_ms = |
| 4215 tracer()->FinalIncrementalMarkCompactSpeedInBytesPerMillisecond(); | 4214 tracer()->FinalIncrementalMarkCompactSpeedInBytesPerMillisecond(); |
| 4216 if (incremental_marking()->IsReadyToOverApproximateWeakClosure() || | 4215 if (incremental_marking()->IsReadyToOverApproximateWeakClosure() || |
| (...skipping 2287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6504 } | 6503 } |
| 6505 | 6504 |
| 6506 | 6505 |
| 6507 // static | 6506 // static |
| 6508 int Heap::GetStaticVisitorIdForMap(Map* map) { | 6507 int Heap::GetStaticVisitorIdForMap(Map* map) { |
| 6509 return StaticVisitorBase::GetVisitorId(map); | 6508 return StaticVisitorBase::GetVisitorId(map); |
| 6510 } | 6509 } |
| 6511 | 6510 |
| 6512 } // namespace internal | 6511 } // namespace internal |
| 6513 } // namespace v8 | 6512 } // namespace v8 |
| OLD | NEW |