| Index: src/zone/accounting-allocator.h
|
| diff --git a/src/zone/accounting-allocator.h b/src/zone/accounting-allocator.h
|
| index f519c45db33637bbc78bbe3c0539269b17ab30db..0a47e5c0cc4f5d975e81e5eda6c558a569d1c9d2 100644
|
| --- a/src/zone/accounting-allocator.h
|
| +++ b/src/zone/accounting-allocator.h
|
| @@ -19,6 +19,11 @@ namespace internal {
|
|
|
| class V8_EXPORT_PRIVATE AccountingAllocator {
|
| public:
|
| + static const size_t kMaxPoolSizeLowMemoryDevice = 8ul * KB;
|
| + static const size_t kMaxPoolSizeMediumMemoryDevice = 1ul * MB;
|
| + static const size_t kMaxPoolSizeHighMemoryDevice = 2ul * MB;
|
| + static const size_t kMaxPoolSizeHugeMemoryDevice = 3ul * MB;
|
| +
|
| AccountingAllocator();
|
| virtual ~AccountingAllocator();
|
|
|
| @@ -34,6 +39,7 @@ class V8_EXPORT_PRIVATE AccountingAllocator {
|
| size_t GetCurrentPoolSize() const;
|
|
|
| void MemoryPressureNotification(MemoryPressureLevel level);
|
| + void ConfigureSegmentPool(const size_t max_pool_size);
|
|
|
| virtual void ZoneCreation(const Zone* zone) {}
|
| virtual void ZoneDestruction(const Zone* zone) {}
|
| @@ -41,10 +47,12 @@ class V8_EXPORT_PRIVATE AccountingAllocator {
|
| private:
|
| static const uint8_t kMinSegmentSizePower = 13;
|
| static const uint8_t kMaxSegmentSizePower = 18;
|
| - static const uint8_t kMaxSegmentsPerBucket = 5;
|
|
|
| STATIC_ASSERT(kMinSegmentSizePower <= kMaxSegmentSizePower);
|
|
|
| + static const uint8_t kNumberBuckets =
|
| + 1 + kMaxSegmentSizePower - kMinSegmentSizePower;
|
| +
|
| // Allocates a new segment. Returns nullptr on failed allocation.
|
| Segment* AllocateSegment(size_t bytes);
|
| void FreeSegment(Segment* memory);
|
| @@ -57,10 +65,10 @@ class V8_EXPORT_PRIVATE AccountingAllocator {
|
| // Empties the pool and puts all its contents onto the garbage stack.
|
| void ClearPool();
|
|
|
| - Segment*
|
| - unused_segments_heads_[1 + kMaxSegmentSizePower - kMinSegmentSizePower];
|
| + Segment* unused_segments_heads_[kNumberBuckets];
|
|
|
| - size_t unused_segments_sizes[1 + kMaxSegmentSizePower - kMinSegmentSizePower];
|
| + uint8_t unused_segments_sizes[kNumberBuckets];
|
| + uint8_t unused_segments_max_sizes[kNumberBuckets];
|
|
|
| base::Mutex unused_segments_mutex_;
|
|
|
|
|