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 |