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 1715 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1726 | 1726 |
1727 promotion_queue_.Destroy(); | 1727 promotion_queue_.Destroy(); |
1728 | 1728 |
1729 incremental_marking()->UpdateMarkingDequeAfterScavenge(); | 1729 incremental_marking()->UpdateMarkingDequeAfterScavenge(); |
1730 | 1730 |
1731 ScavengeWeakObjectRetainer weak_object_retainer(this); | 1731 ScavengeWeakObjectRetainer weak_object_retainer(this); |
1732 ProcessYoungWeakReferences(&weak_object_retainer); | 1732 ProcessYoungWeakReferences(&weak_object_retainer); |
1733 | 1733 |
1734 DCHECK(new_space_front == new_space_->top()); | 1734 DCHECK(new_space_front == new_space_->top()); |
1735 | 1735 |
1736 new_space_->SealIntermediateGeneration(); | 1736 // Set age mark. |
| 1737 new_space_->set_age_mark(new_space_->top()); |
1737 | 1738 |
1738 ArrayBufferTracker::FreeDeadInNewSpace(this); | 1739 ArrayBufferTracker::FreeDeadInNewSpace(this); |
1739 | 1740 |
1740 // Update how much has survived scavenge. | 1741 // Update how much has survived scavenge. |
1741 IncrementYoungSurvivorsCounter( | 1742 IncrementYoungSurvivorsCounter( |
1742 static_cast<int>((PromotedSpaceSizeOfObjects() - survived_watermark) + | 1743 static_cast<int>((PromotedSpaceSizeOfObjects() - survived_watermark) + |
1743 new_space_->Size())); | 1744 new_space_->Size())); |
1744 | 1745 |
1745 LOG(isolate_, ResourceEvent("scavenge", "end")); | 1746 LOG(isolate_, ResourceEvent("scavenge", "end")); |
1746 | 1747 |
(...skipping 3328 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5075 "semi-space size of %d MB\n", | 5076 "semi-space size of %d MB\n", |
5076 max_semi_space_size_ / MB); | 5077 max_semi_space_size_ / MB); |
5077 } | 5078 } |
5078 } else { | 5079 } else { |
5079 initial_semispace_size_ = | 5080 initial_semispace_size_ = |
5080 ROUND_UP(initial_semispace_size, Page::kPageSize); | 5081 ROUND_UP(initial_semispace_size, Page::kPageSize); |
5081 } | 5082 } |
5082 } | 5083 } |
5083 | 5084 |
5084 initial_semispace_size_ = Min(initial_semispace_size_, max_semi_space_size_); | 5085 initial_semispace_size_ = Min(initial_semispace_size_, max_semi_space_size_); |
| 5086 |
5085 if (FLAG_semi_space_growth_factor < 2) { | 5087 if (FLAG_semi_space_growth_factor < 2) { |
5086 FLAG_semi_space_growth_factor = 2; | 5088 FLAG_semi_space_growth_factor = 2; |
5087 } | 5089 } |
5088 | 5090 |
5089 // The old generation is paged and needs at least one page for each space. | 5091 // The old generation is paged and needs at least one page for each space. |
5090 int paged_space_count = LAST_PAGED_SPACE - FIRST_PAGED_SPACE + 1; | 5092 int paged_space_count = LAST_PAGED_SPACE - FIRST_PAGED_SPACE + 1; |
5091 max_old_generation_size_ = | 5093 max_old_generation_size_ = |
5092 Max(static_cast<intptr_t>(paged_space_count * Page::kPageSize), | 5094 Max(static_cast<intptr_t>(paged_space_count * Page::kPageSize), |
5093 max_old_generation_size_); | 5095 max_old_generation_size_); |
5094 | 5096 |
(...skipping 1424 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6519 } | 6521 } |
6520 | 6522 |
6521 | 6523 |
6522 // static | 6524 // static |
6523 int Heap::GetStaticVisitorIdForMap(Map* map) { | 6525 int Heap::GetStaticVisitorIdForMap(Map* map) { |
6524 return StaticVisitorBase::GetVisitorId(map); | 6526 return StaticVisitorBase::GetVisitorId(map); |
6525 } | 6527 } |
6526 | 6528 |
6527 } // namespace internal | 6529 } // namespace internal |
6528 } // namespace v8 | 6530 } // namespace v8 |
OLD | NEW |