| 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 #ifndef V8_HEAP_MARK_COMPACT_H_ | 5 #ifndef V8_HEAP_MARK_COMPACT_H_ |
| 6 #define V8_HEAP_MARK_COMPACT_H_ | 6 #define V8_HEAP_MARK_COMPACT_H_ |
| 7 | 7 |
| 8 #include <deque> | 8 #include <deque> |
| 9 | 9 |
| 10 #include "src/base/bits.h" | 10 #include "src/base/bits.h" |
| (...skipping 483 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 494 | 494 |
| 495 void RegisterExternallyReferencedObject(Object** object); | 495 void RegisterExternallyReferencedObject(Object** object); |
| 496 | 496 |
| 497 private: | 497 private: |
| 498 class EvacuateNewSpacePageVisitor; | 498 class EvacuateNewSpacePageVisitor; |
| 499 class EvacuateNewSpaceVisitor; | 499 class EvacuateNewSpaceVisitor; |
| 500 class EvacuateOldSpaceVisitor; | 500 class EvacuateOldSpaceVisitor; |
| 501 class EvacuateRecordOnlyVisitor; | 501 class EvacuateRecordOnlyVisitor; |
| 502 class EvacuateVisitorBase; | 502 class EvacuateVisitorBase; |
| 503 class HeapObjectVisitor; | 503 class HeapObjectVisitor; |
| 504 class ObjectStatsVisitor; |
| 504 | 505 |
| 505 explicit MarkCompactCollector(Heap* heap); | 506 explicit MarkCompactCollector(Heap* heap); |
| 506 | 507 |
| 507 bool WillBeDeoptimized(Code* code); | 508 bool WillBeDeoptimized(Code* code); |
| 508 void ClearInvalidRememberedSetSlots(); | 509 void ClearInvalidRememberedSetSlots(); |
| 509 | 510 |
| 510 void ComputeEvacuationHeuristics(int area_size, | 511 void ComputeEvacuationHeuristics(int area_size, |
| 511 int* target_fragmentation_percent, | 512 int* target_fragmentation_percent, |
| 512 int* max_evacuated_bytes); | 513 int* max_evacuated_bytes); |
| 513 | 514 |
| 515 void VisitAllObjects(HeapObjectVisitor* visitor); |
| 516 |
| 514 // Finishes GC, performs heap verification if enabled. | 517 // Finishes GC, performs heap verification if enabled. |
| 515 void Finish(); | 518 void Finish(); |
| 516 | 519 |
| 517 // ----------------------------------------------------------------------- | 520 // ----------------------------------------------------------------------- |
| 518 // Phase 1: Marking live objects. | 521 // Phase 1: Marking live objects. |
| 519 // | 522 // |
| 520 // Before: The heap has been prepared for garbage collection by | 523 // Before: The heap has been prepared for garbage collection by |
| 521 // MarkCompactCollector::Prepare() and is otherwise in its | 524 // MarkCompactCollector::Prepare() and is otherwise in its |
| 522 // normal state. | 525 // normal state. |
| 523 // | 526 // |
| (...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 758 private: | 761 private: |
| 759 MarkCompactCollector* collector_; | 762 MarkCompactCollector* collector_; |
| 760 }; | 763 }; |
| 761 | 764 |
| 762 | 765 |
| 763 const char* AllocationSpaceName(AllocationSpace space); | 766 const char* AllocationSpaceName(AllocationSpace space); |
| 764 } // namespace internal | 767 } // namespace internal |
| 765 } // namespace v8 | 768 } // namespace v8 |
| 766 | 769 |
| 767 #endif // V8_HEAP_MARK_COMPACT_H_ | 770 #endif // V8_HEAP_MARK_COMPACT_H_ |
| OLD | NEW |