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

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

Issue 2895473003: [heap] Simplify and scale ResourceConstraints::ConfigureDefaults. (Closed)
Patch Set: 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/api.cc ('k') | src/zone/accounting-allocator.h » ('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 #ifndef V8_HEAP_HEAP_H_ 5 #ifndef V8_HEAP_HEAP_H_
6 #define V8_HEAP_HEAP_H_ 6 #define V8_HEAP_HEAP_H_
7 7
8 #include <cmath> 8 #include <cmath>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 596 matching lines...) Expand 10 before | Expand all | Expand 10 after
607 607
608 #if V8_OS_ANDROID 608 #if V8_OS_ANDROID
609 // Don't apply pointer multiplier on Android since it has no swap space and 609 // Don't apply pointer multiplier on Android since it has no swap space and
610 // should instead adapt it's heap size based on available physical memory. 610 // should instead adapt it's heap size based on available physical memory.
611 static const int kPointerMultiplier = 1; 611 static const int kPointerMultiplier = 1;
612 #else 612 #else
613 static const int kPointerMultiplier = i::kPointerSize / 4; 613 static const int kPointerMultiplier = i::kPointerSize / 4;
614 #endif 614 #endif
615 615
616 // The new space size has to be a power of 2. Sizes are in MB. 616 // The new space size has to be a power of 2. Sizes are in MB.
617 static const int kMaxSemiSpaceSizeLowMemoryDevice = 1 * kPointerMultiplier; 617 static const int kMinSemiSpaceSize = 1 * kPointerMultiplier;
618 static const int kMaxSemiSpaceSizeMediumMemoryDevice = 4 * kPointerMultiplier; 618 static const int kMaxSemiSpaceSize = 8 * kPointerMultiplier;
619 static const int kMaxSemiSpaceSizeHighMemoryDevice = 8 * kPointerMultiplier;
620 static const int kMaxSemiSpaceSizeHugeMemoryDevice = 8 * kPointerMultiplier;
621 619
622 // The old space size has to be a multiple of Page::kPageSize. 620 // The old space size has to be a multiple of Page::kPageSize.
623 // Sizes are in MB. 621 // Sizes are in MB.
624 static const int kMaxOldSpaceSizeLowMemoryDevice = 128 * kPointerMultiplier; 622 static const int kMinOldSpaceSize = 128 * kPointerMultiplier;
625 static const int kMaxOldSpaceSizeMediumMemoryDevice = 623 static const int kMaxOldSpaceSize = 1024 * kPointerMultiplier;
626 256 * kPointerMultiplier;
627 static const int kMaxOldSpaceSizeHighMemoryDevice = 512 * kPointerMultiplier;
628 static const int kMaxOldSpaceSizeHugeMemoryDevice = 1024 * kPointerMultiplier;
629 624
630 static const int kTraceRingBufferSize = 512; 625 static const int kTraceRingBufferSize = 512;
631 static const int kStacktraceBufferSize = 512; 626 static const int kStacktraceBufferSize = 512;
632 627
633 V8_EXPORT_PRIVATE static const double kMinHeapGrowingFactor; 628 V8_EXPORT_PRIVATE static const double kMinHeapGrowingFactor;
634 V8_EXPORT_PRIVATE static const double kMaxHeapGrowingFactor; 629 V8_EXPORT_PRIVATE static const double kMaxHeapGrowingFactor;
635 static const double kMaxHeapGrowingFactorMemoryConstrained; 630 static const double kMaxHeapGrowingFactorMemoryConstrained;
636 static const double kMaxHeapGrowingFactorIdle; 631 static const double kMaxHeapGrowingFactorIdle;
637 static const double kConservativeHeapGrowingFactor; 632 static const double kConservativeHeapGrowingFactor;
638 static const double kTargetMutatorUtilization; 633 static const double kTargetMutatorUtilization;
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after
944 939
945 bool HasLowAllocationRate(); 940 bool HasLowAllocationRate();
946 bool HasHighFragmentation(); 941 bool HasHighFragmentation();
947 bool HasHighFragmentation(size_t used, size_t committed); 942 bool HasHighFragmentation(size_t used, size_t committed);
948 943
949 void ActivateMemoryReducerIfNeeded(); 944 void ActivateMemoryReducerIfNeeded();
950 945
951 bool ShouldOptimizeForMemoryUsage(); 946 bool ShouldOptimizeForMemoryUsage();
952 947
953 bool IsLowMemoryDevice() { 948 bool IsLowMemoryDevice() {
949 const int kMaxOldSpaceSizeLowMemoryDevice = 128 * kPointerMultiplier;
Hannes Payer (out of office) 2017/05/19 11:39:57 I will remove these two methods in a follow-up CL.
954 return max_old_generation_size_ <= kMaxOldSpaceSizeLowMemoryDevice; 950 return max_old_generation_size_ <= kMaxOldSpaceSizeLowMemoryDevice;
955 } 951 }
956 952
957 bool IsMemoryConstrainedDevice() { 953 bool IsMemoryConstrainedDevice() {
954 const int kMaxOldSpaceSizeMediumMemoryDevice = 256 * kPointerMultiplier;
958 return max_old_generation_size_ <= kMaxOldSpaceSizeMediumMemoryDevice; 955 return max_old_generation_size_ <= kMaxOldSpaceSizeMediumMemoryDevice;
959 } 956 }
960 957
961 bool HighMemoryPressure() { 958 bool HighMemoryPressure() {
962 return memory_pressure_level_.Value() != MemoryPressureLevel::kNone; 959 return memory_pressure_level_.Value() != MemoryPressureLevel::kNone;
963 } 960 }
964 961
965 size_t HeapLimitForDebugging() { 962 size_t HeapLimitForDebugging() {
966 const size_t kDebugHeapSizeFactor = 4; 963 const size_t kDebugHeapSizeFactor = 4;
967 size_t max_limit = std::numeric_limits<size_t>::max() / 4; 964 size_t max_limit = std::numeric_limits<size_t>::max() / 4;
(...skipping 1669 matching lines...) Expand 10 before | Expand all | Expand 10 after
2637 friend class PagedSpace; 2634 friend class PagedSpace;
2638 DISALLOW_COPY_AND_ASSIGN(AllocationObserver); 2635 DISALLOW_COPY_AND_ASSIGN(AllocationObserver);
2639 }; 2636 };
2640 2637
2641 V8_EXPORT_PRIVATE const char* AllocationSpaceName(AllocationSpace space); 2638 V8_EXPORT_PRIVATE const char* AllocationSpaceName(AllocationSpace space);
2642 2639
2643 } // namespace internal 2640 } // namespace internal
2644 } // namespace v8 2641 } // namespace v8
2645 2642
2646 #endif // V8_HEAP_HEAP_H_ 2643 #endif // V8_HEAP_HEAP_H_
OLDNEW
« no previous file with comments | « src/api.cc ('k') | src/zone/accounting-allocator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698