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 998 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1009 return max_old_generation_size_ == HeapLimitForDebugging(); | 1009 return max_old_generation_size_ == HeapLimitForDebugging(); |
1010 } | 1010 } |
1011 | 1011 |
1012 // =========================================================================== | 1012 // =========================================================================== |
1013 // Initialization. =========================================================== | 1013 // Initialization. =========================================================== |
1014 // =========================================================================== | 1014 // =========================================================================== |
1015 | 1015 |
1016 // Configure heap size in MB before setup. Return false if the heap has been | 1016 // Configure heap size in MB before setup. Return false if the heap has been |
1017 // set up already. | 1017 // set up already. |
1018 bool ConfigureHeap(size_t max_semi_space_size, size_t max_old_space_size, | 1018 bool ConfigureHeap(size_t max_semi_space_size, size_t max_old_space_size, |
1019 size_t max_executable_size, size_t code_range_size); | 1019 size_t code_range_size); |
1020 bool ConfigureHeapDefault(); | 1020 bool ConfigureHeapDefault(); |
1021 | 1021 |
1022 // Prepares the heap, setting up memory areas that are needed in the isolate | 1022 // Prepares the heap, setting up memory areas that are needed in the isolate |
1023 // without actually creating any objects. | 1023 // without actually creating any objects. |
1024 bool SetUp(); | 1024 bool SetUp(); |
1025 | 1025 |
1026 // Bootstraps the object heap with the core set of objects required to run. | 1026 // Bootstraps the object heap with the core set of objects required to run. |
1027 // Returns whether it succeeded. | 1027 // Returns whether it succeeded. |
1028 bool CreateHeapObjects(); | 1028 bool CreateHeapObjects(); |
1029 | 1029 |
(...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1363 // GC statistics. ============================================================ | 1363 // GC statistics. ============================================================ |
1364 // =========================================================================== | 1364 // =========================================================================== |
1365 | 1365 |
1366 // Returns the maximum amount of memory reserved for the heap. | 1366 // Returns the maximum amount of memory reserved for the heap. |
1367 size_t MaxReserved() { | 1367 size_t MaxReserved() { |
1368 return 2 * max_semi_space_size_ + max_old_generation_size_; | 1368 return 2 * max_semi_space_size_ + max_old_generation_size_; |
1369 } | 1369 } |
1370 size_t MaxSemiSpaceSize() { return max_semi_space_size_; } | 1370 size_t MaxSemiSpaceSize() { return max_semi_space_size_; } |
1371 size_t InitialSemiSpaceSize() { return initial_semispace_size_; } | 1371 size_t InitialSemiSpaceSize() { return initial_semispace_size_; } |
1372 size_t MaxOldGenerationSize() { return max_old_generation_size_; } | 1372 size_t MaxOldGenerationSize() { return max_old_generation_size_; } |
1373 size_t MaxExecutableSize() { return max_executable_size_; } | |
1374 | 1373 |
1375 // Returns the capacity of the heap in bytes w/o growing. Heap grows when | 1374 // Returns the capacity of the heap in bytes w/o growing. Heap grows when |
1376 // more spaces are needed until it reaches the limit. | 1375 // more spaces are needed until it reaches the limit. |
1377 size_t Capacity(); | 1376 size_t Capacity(); |
1378 | 1377 |
1379 // Returns the capacity of the old generation. | 1378 // Returns the capacity of the old generation. |
1380 size_t OldGenerationCapacity(); | 1379 size_t OldGenerationCapacity(); |
1381 | 1380 |
1382 // Returns the amount of memory currently committed for the heap. | 1381 // Returns the amount of memory currently committed for the heap. |
1383 size_t CommittedMemory(); | 1382 size_t CommittedMemory(); |
(...skipping 798 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2182 | 2181 |
2183 Object* roots_[kRootListLength]; | 2182 Object* roots_[kRootListLength]; |
2184 | 2183 |
2185 size_t code_range_size_; | 2184 size_t code_range_size_; |
2186 size_t max_semi_space_size_; | 2185 size_t max_semi_space_size_; |
2187 size_t initial_semispace_size_; | 2186 size_t initial_semispace_size_; |
2188 size_t max_old_generation_size_; | 2187 size_t max_old_generation_size_; |
2189 size_t initial_max_old_generation_size_; | 2188 size_t initial_max_old_generation_size_; |
2190 size_t initial_old_generation_size_; | 2189 size_t initial_old_generation_size_; |
2191 bool old_generation_size_configured_; | 2190 bool old_generation_size_configured_; |
2192 size_t max_executable_size_; | |
2193 size_t maximum_committed_; | 2191 size_t maximum_committed_; |
2194 | 2192 |
2195 // For keeping track of how much data has survived | 2193 // For keeping track of how much data has survived |
2196 // scavenge since last new space expansion. | 2194 // scavenge since last new space expansion. |
2197 size_t survived_since_last_expansion_; | 2195 size_t survived_since_last_expansion_; |
2198 | 2196 |
2199 // ... and since the last scavenge. | 2197 // ... and since the last scavenge. |
2200 size_t survived_last_scavenge_; | 2198 size_t survived_last_scavenge_; |
2201 | 2199 |
2202 // This is not the depth of nested AlwaysAllocateScope's but rather a single | 2200 // This is not the depth of nested AlwaysAllocateScope's but rather a single |
(...skipping 458 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2661 friend class PagedSpace; | 2659 friend class PagedSpace; |
2662 DISALLOW_COPY_AND_ASSIGN(AllocationObserver); | 2660 DISALLOW_COPY_AND_ASSIGN(AllocationObserver); |
2663 }; | 2661 }; |
2664 | 2662 |
2665 V8_EXPORT_PRIVATE const char* AllocationSpaceName(AllocationSpace space); | 2663 V8_EXPORT_PRIVATE const char* AllocationSpaceName(AllocationSpace space); |
2666 | 2664 |
2667 } // namespace internal | 2665 } // namespace internal |
2668 } // namespace v8 | 2666 } // namespace v8 |
2669 | 2667 |
2670 #endif // V8_HEAP_HEAP_H_ | 2668 #endif // V8_HEAP_HEAP_H_ |
OLD | NEW |