Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(401)

Side by Side Diff: src/heap/heap.cc

Issue 2006183003: Revert of [heap] Fine-grained JSArrayBuffer tracking (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/heap/heap.h ('k') | src/heap/incremental-marking.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/scopeinfo.h" 9 #include "src/ast/scopeinfo.h"
10 #include "src/base/bits.h" 10 #include "src/base/bits.h"
(...skipping 1608 matching lines...) Expand 10 before | Expand all | Expand 10 after
1619 gc_state_ = SCAVENGE; 1619 gc_state_ = SCAVENGE;
1620 1620
1621 // Implements Cheney's copying algorithm 1621 // Implements Cheney's copying algorithm
1622 LOG(isolate_, ResourceEvent("scavenge", "begin")); 1622 LOG(isolate_, ResourceEvent("scavenge", "begin"));
1623 1623
1624 // Used for updating survived_since_last_expansion_ at function end. 1624 // Used for updating survived_since_last_expansion_ at function end.
1625 intptr_t survived_watermark = PromotedSpaceSizeOfObjects(); 1625 intptr_t survived_watermark = PromotedSpaceSizeOfObjects();
1626 1626
1627 scavenge_collector_->SelectScavengingVisitorsTable(); 1627 scavenge_collector_->SelectScavengingVisitorsTable();
1628 1628
1629 array_buffer_tracker()->PrepareDiscoveryInNewSpace();
1630
1629 // Flip the semispaces. After flipping, to space is empty, from space has 1631 // Flip the semispaces. After flipping, to space is empty, from space has
1630 // live objects. 1632 // live objects.
1631 new_space_.Flip(); 1633 new_space_.Flip();
1632 new_space_.ResetAllocationInfo(); 1634 new_space_.ResetAllocationInfo();
1633 1635
1634 // We need to sweep newly copied objects which can be either in the 1636 // We need to sweep newly copied objects which can be either in the
1635 // to space or promoted to the old generation. For to-space 1637 // to space or promoted to the old generation. For to-space
1636 // objects, we treat the bottom of the to space as a queue. Newly 1638 // objects, we treat the bottom of the to space as a queue. Newly
1637 // copied and unswept objects lie between a 'front' mark and the 1639 // copied and unswept objects lie between a 'front' mark and the
1638 // allocation pointer. 1640 // allocation pointer.
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
1735 incremental_marking()->UpdateMarkingDequeAfterScavenge(); 1737 incremental_marking()->UpdateMarkingDequeAfterScavenge();
1736 1738
1737 ScavengeWeakObjectRetainer weak_object_retainer(this); 1739 ScavengeWeakObjectRetainer weak_object_retainer(this);
1738 ProcessYoungWeakReferences(&weak_object_retainer); 1740 ProcessYoungWeakReferences(&weak_object_retainer);
1739 1741
1740 DCHECK(new_space_front == new_space_.top()); 1742 DCHECK(new_space_front == new_space_.top());
1741 1743
1742 // Set age mark. 1744 // Set age mark.
1743 new_space_.set_age_mark(new_space_.top()); 1745 new_space_.set_age_mark(new_space_.top());
1744 1746
1745 array_buffer_tracker()->FreeDeadInNewSpace(); 1747 array_buffer_tracker()->FreeDead(true);
1746 1748
1747 // Update how much has survived scavenge. 1749 // Update how much has survived scavenge.
1748 IncrementYoungSurvivorsCounter(static_cast<int>( 1750 IncrementYoungSurvivorsCounter(static_cast<int>(
1749 (PromotedSpaceSizeOfObjects() - survived_watermark) + new_space_.Size())); 1751 (PromotedSpaceSizeOfObjects() - survived_watermark) + new_space_.Size()));
1750 1752
1751 LOG(isolate_, ResourceEvent("scavenge", "end")); 1753 LOG(isolate_, ResourceEvent("scavenge", "end"));
1752 1754
1753 gc_state_ = NOT_IN_GC; 1755 gc_state_ = NOT_IN_GC;
1754 } 1756 }
1755 1757
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after
2015 return object; 2017 return object;
2016 } 2018 }
2017 2019
2018 2020
2019 HeapObject* Heap::DoubleAlignForDeserialization(HeapObject* object, int size) { 2021 HeapObject* Heap::DoubleAlignForDeserialization(HeapObject* object, int size) {
2020 return AlignWithFiller(object, size - kPointerSize, size, kDoubleAligned); 2022 return AlignWithFiller(object, size - kPointerSize, size, kDoubleAligned);
2021 } 2023 }
2022 2024
2023 2025
2024 void Heap::RegisterNewArrayBuffer(JSArrayBuffer* buffer) { 2026 void Heap::RegisterNewArrayBuffer(JSArrayBuffer* buffer) {
2025 const bool track_live = Marking::IsBlack(Marking::MarkBitFrom(buffer)); 2027 return array_buffer_tracker()->RegisterNew(buffer);
2026 return array_buffer_tracker()->RegisterNew(buffer, track_live);
2027 } 2028 }
2028 2029
2029 2030
2030 void Heap::UnregisterArrayBuffer(JSArrayBuffer* buffer) { 2031 void Heap::UnregisterArrayBuffer(JSArrayBuffer* buffer) {
2031 return array_buffer_tracker()->Unregister(buffer); 2032 return array_buffer_tracker()->Unregister(buffer);
2032 } 2033 }
2033 2034
2034 2035
2035 void Heap::ConfigureInitialOldGenerationSize() { 2036 void Heap::ConfigureInitialOldGenerationSize() {
2036 if (!old_generation_size_configured_ && tracer()->SurvivalEventsRecorded()) { 2037 if (!old_generation_size_configured_ && tracer()->SurvivalEventsRecorded()) {
(...skipping 4330 matching lines...) Expand 10 before | Expand all | Expand 10 after
6367 } 6368 }
6368 6369
6369 6370
6370 // static 6371 // static
6371 int Heap::GetStaticVisitorIdForMap(Map* map) { 6372 int Heap::GetStaticVisitorIdForMap(Map* map) {
6372 return StaticVisitorBase::GetVisitorId(map); 6373 return StaticVisitorBase::GetVisitorId(map);
6373 } 6374 }
6374 6375
6375 } // namespace internal 6376 } // namespace internal
6376 } // namespace v8 6377 } // namespace v8
OLDNEW
« no previous file with comments | « src/heap/heap.h ('k') | src/heap/incremental-marking.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698