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

Side by Side Diff: src/heap/spaces.h

Issue 2861763002: [heap] Add GC accounting to slow allocation and incremental marking job (Closed)
Patch Set: Fix typo Created 3 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/incremental-marking-job.cc ('k') | src/heap/spaces.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 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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_SPACES_H_ 5 #ifndef V8_HEAP_SPACES_H_
6 #define V8_HEAP_SPACES_H_ 6 #define V8_HEAP_SPACES_H_
7 7
8 #include <list> 8 #include <list>
9 #include <memory> 9 #include <memory>
10 #include <unordered_set> 10 #include <unordered_set>
(...skipping 2165 matching lines...) Expand 10 before | Expand all | Expand 10 after
2176 inline HeapObject* AllocateLinearlyAligned(int* size_in_bytes, 2176 inline HeapObject* AllocateLinearlyAligned(int* size_in_bytes,
2177 AllocationAlignment alignment); 2177 AllocationAlignment alignment);
2178 2178
2179 // If sweeping is still in progress try to sweep unswept pages. If that is 2179 // If sweeping is still in progress try to sweep unswept pages. If that is
2180 // not successful, wait for the sweeper threads and re-try free-list 2180 // not successful, wait for the sweeper threads and re-try free-list
2181 // allocation. 2181 // allocation.
2182 MUST_USE_RESULT virtual HeapObject* SweepAndRetryAllocation( 2182 MUST_USE_RESULT virtual HeapObject* SweepAndRetryAllocation(
2183 int size_in_bytes); 2183 int size_in_bytes);
2184 2184
2185 // Slow path of AllocateRaw. This function is space-dependent. 2185 // Slow path of AllocateRaw. This function is space-dependent.
2186 MUST_USE_RESULT HeapObject* SlowAllocateRaw(int size_in_bytes); 2186 MUST_USE_RESULT virtual HeapObject* SlowAllocateRaw(int size_in_bytes);
2187
2188 MUST_USE_RESULT HeapObject* RawSlowAllocateRaw(int size_in_bytes);
2187 2189
2188 size_t area_size_; 2190 size_t area_size_;
2189 2191
2190 // Accounting information for this space. 2192 // Accounting information for this space.
2191 AllocationStats accounting_stats_; 2193 AllocationStats accounting_stats_;
2192 2194
2193 // The dummy page that anchors the double linked list of pages. 2195 // The dummy page that anchors the double linked list of pages.
2194 Page anchor_; 2196 Page anchor_;
2195 2197
2196 // The space's free list. 2198 // The space's free list.
(...skipping 538 matching lines...) Expand 10 before | Expand all | Expand 10 after
2735 : PagedSpace(heap, id, executable) {} 2737 : PagedSpace(heap, id, executable) {}
2736 2738
2737 bool is_local() override { return true; } 2739 bool is_local() override { return true; }
2738 2740
2739 protected: 2741 protected:
2740 // The space is temporary and not included in any snapshots. 2742 // The space is temporary and not included in any snapshots.
2741 bool snapshotable() override { return false; } 2743 bool snapshotable() override { return false; }
2742 2744
2743 MUST_USE_RESULT HeapObject* SweepAndRetryAllocation( 2745 MUST_USE_RESULT HeapObject* SweepAndRetryAllocation(
2744 int size_in_bytes) override; 2746 int size_in_bytes) override;
2747
2748 MUST_USE_RESULT HeapObject* SlowAllocateRaw(int size_in_bytes) override;
2745 }; 2749 };
2746 2750
2747 2751
2748 // A collection of |CompactionSpace|s used by a single compaction task. 2752 // A collection of |CompactionSpace|s used by a single compaction task.
2749 class CompactionSpaceCollection : public Malloced { 2753 class CompactionSpaceCollection : public Malloced {
2750 public: 2754 public:
2751 explicit CompactionSpaceCollection(Heap* heap) 2755 explicit CompactionSpaceCollection(Heap* heap)
2752 : old_space_(heap, OLD_SPACE, Executability::NOT_EXECUTABLE), 2756 : old_space_(heap, OLD_SPACE, Executability::NOT_EXECUTABLE),
2753 code_space_(heap, CODE_SPACE, Executability::EXECUTABLE) {} 2757 code_space_(heap, CODE_SPACE, Executability::EXECUTABLE) {}
2754 2758
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
2955 PageIterator old_iterator_; 2959 PageIterator old_iterator_;
2956 PageIterator code_iterator_; 2960 PageIterator code_iterator_;
2957 PageIterator map_iterator_; 2961 PageIterator map_iterator_;
2958 LargePageIterator lo_iterator_; 2962 LargePageIterator lo_iterator_;
2959 }; 2963 };
2960 2964
2961 } // namespace internal 2965 } // namespace internal
2962 } // namespace v8 2966 } // namespace v8
2963 2967
2964 #endif // V8_HEAP_SPACES_H_ 2968 #endif // V8_HEAP_SPACES_H_
OLDNEW
« no previous file with comments | « src/heap/incremental-marking-job.cc ('k') | src/heap/spaces.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698