| 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 #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 <map> | 9 #include <map> |
| 10 | 10 |
| (...skipping 938 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 949 } | 949 } |
| 950 | 950 |
| 951 bool IsMemoryConstrainedDevice() { | 951 bool IsMemoryConstrainedDevice() { |
| 952 return max_old_generation_size_ <= kMaxOldSpaceSizeMediumMemoryDevice; | 952 return max_old_generation_size_ <= kMaxOldSpaceSizeMediumMemoryDevice; |
| 953 } | 953 } |
| 954 | 954 |
| 955 bool HighMemoryPressure() { | 955 bool HighMemoryPressure() { |
| 956 return memory_pressure_level_.Value() != MemoryPressureLevel::kNone; | 956 return memory_pressure_level_.Value() != MemoryPressureLevel::kNone; |
| 957 } | 957 } |
| 958 | 958 |
| 959 void IncreaseHeapLimitForDebugging() { | 959 size_t HeapLimitForDebugging() { |
| 960 const size_t kDebugHeapSizeFactor = 4; | 960 const size_t kDebugHeapSizeFactor = 4; |
| 961 size_t max_limit = std::numeric_limits<size_t>::max() / 4; | 961 size_t max_limit = std::numeric_limits<size_t>::max() / 4; |
| 962 return Min(max_limit, |
| 963 initial_max_old_generation_size_ * kDebugHeapSizeFactor); |
| 964 } |
| 965 |
| 966 void IncreaseHeapLimitForDebugging() { |
| 962 max_old_generation_size_ = | 967 max_old_generation_size_ = |
| 963 Max(max_old_generation_size_, | 968 Max(max_old_generation_size_, HeapLimitForDebugging()); |
| 964 Min(max_limit, | |
| 965 initial_max_old_generation_size_ * kDebugHeapSizeFactor)); | |
| 966 } | 969 } |
| 967 | 970 |
| 968 void RestoreOriginalHeapLimit() { | 971 void RestoreOriginalHeapLimit() { |
| 969 // Do not set the limit lower than the live size + some slack. | 972 // Do not set the limit lower than the live size + some slack. |
| 970 size_t min_limit = SizeOfObjects() + SizeOfObjects() / 4; | 973 size_t min_limit = SizeOfObjects() + SizeOfObjects() / 4; |
| 971 max_old_generation_size_ = | 974 max_old_generation_size_ = |
| 972 Min(max_old_generation_size_, | 975 Min(max_old_generation_size_, |
| 973 Max(initial_max_old_generation_size_, min_limit)); | 976 Max(initial_max_old_generation_size_, min_limit)); |
| 974 } | 977 } |
| 975 | 978 |
| 979 bool IsHeapLimitIncreasedForDebugging() { |
| 980 return max_old_generation_size_ == HeapLimitForDebugging(); |
| 981 } |
| 982 |
| 976 // =========================================================================== | 983 // =========================================================================== |
| 977 // Initialization. =========================================================== | 984 // Initialization. =========================================================== |
| 978 // =========================================================================== | 985 // =========================================================================== |
| 979 | 986 |
| 980 // Configure heap size in MB before setup. Return false if the heap has been | 987 // Configure heap size in MB before setup. Return false if the heap has been |
| 981 // set up already. | 988 // set up already. |
| 982 bool ConfigureHeap(size_t max_semi_space_size, size_t max_old_space_size, | 989 bool ConfigureHeap(size_t max_semi_space_size, size_t max_old_space_size, |
| 983 size_t max_executable_size, size_t code_range_size); | 990 size_t max_executable_size, size_t code_range_size); |
| 984 bool ConfigureHeapDefault(); | 991 bool ConfigureHeapDefault(); |
| 985 | 992 |
| (...skipping 1690 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2676 friend class LargeObjectSpace; | 2683 friend class LargeObjectSpace; |
| 2677 friend class NewSpace; | 2684 friend class NewSpace; |
| 2678 friend class PagedSpace; | 2685 friend class PagedSpace; |
| 2679 DISALLOW_COPY_AND_ASSIGN(AllocationObserver); | 2686 DISALLOW_COPY_AND_ASSIGN(AllocationObserver); |
| 2680 }; | 2687 }; |
| 2681 | 2688 |
| 2682 } // namespace internal | 2689 } // namespace internal |
| 2683 } // namespace v8 | 2690 } // namespace v8 |
| 2684 | 2691 |
| 2685 #endif // V8_HEAP_HEAP_H_ | 2692 #endif // V8_HEAP_HEAP_H_ |
| OLD | NEW |