OLD | NEW |
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
235 | 235 |
236 // Returns the capacity of the heap in bytes w/o growing. Heap grows when | 236 // Returns the capacity of the heap in bytes w/o growing. Heap grows when |
237 // more spaces are needed until it reaches the limit. | 237 // more spaces are needed until it reaches the limit. |
238 static int Capacity(); | 238 static int Capacity(); |
239 | 239 |
240 // Returns the available bytes in space w/o growing. | 240 // Returns the available bytes in space w/o growing. |
241 // Heap doesn't guarantee that it can allocate an object that requires | 241 // Heap doesn't guarantee that it can allocate an object that requires |
242 // all available bytes. Check MaxHeapObjectSize() instead. | 242 // all available bytes. Check MaxHeapObjectSize() instead. |
243 static int Available(); | 243 static int Available(); |
244 | 244 |
245 // Returns the maximum object size that heap supports. Objects larger than | 245 // Returns the maximum object size in paged space. |
246 // the maximum heap object size are allocated in a large object space. | 246 static inline int MaxObjectSizeInPagedSpace(); |
247 static inline int MaxHeapObjectSize(); | |
248 | 247 |
249 // Returns of size of all objects residing in the heap. | 248 // Returns of size of all objects residing in the heap. |
250 static int SizeOfObjects(); | 249 static int SizeOfObjects(); |
251 | 250 |
252 // Return the starting address and a mask for the new space. And-masking an | 251 // Return the starting address and a mask for the new space. And-masking an |
253 // address with the mask will result in the start address of the new space | 252 // address with the mask will result in the start address of the new space |
254 // for all addresses in either semispace. | 253 // for all addresses in either semispace. |
255 static Address NewSpaceStart() { return new_space_.start(); } | 254 static Address NewSpaceStart() { return new_space_.start(); } |
256 static uint32_t NewSpaceMask() { return new_space_.mask(); } | 255 static uint32_t NewSpaceMask() { return new_space_.mask(); } |
257 static Address NewSpaceTop() { return new_space_.top(); } | 256 static Address NewSpaceTop() { return new_space_.top(); } |
(...skipping 565 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
823 | 822 |
824 // For keeping track of how much data has survived | 823 // For keeping track of how much data has survived |
825 // scavenge since last new space expansion. | 824 // scavenge since last new space expansion. |
826 static int survived_since_last_expansion_; | 825 static int survived_since_last_expansion_; |
827 | 826 |
828 static int always_allocate_scope_depth_; | 827 static int always_allocate_scope_depth_; |
829 static bool context_disposed_pending_; | 828 static bool context_disposed_pending_; |
830 | 829 |
831 static const int kMaxMapSpaceSize = 8*MB; | 830 static const int kMaxMapSpaceSize = 8*MB; |
832 | 831 |
| 832 static const int kMaxObjectSizeInNewSpace = 256*KB; |
| 833 |
833 static NewSpace new_space_; | 834 static NewSpace new_space_; |
834 static OldSpace* old_pointer_space_; | 835 static OldSpace* old_pointer_space_; |
835 static OldSpace* old_data_space_; | 836 static OldSpace* old_data_space_; |
836 static OldSpace* code_space_; | 837 static OldSpace* code_space_; |
837 static MapSpace* map_space_; | 838 static MapSpace* map_space_; |
838 static LargeObjectSpace* lo_space_; | 839 static LargeObjectSpace* lo_space_; |
839 static HeapState gc_state_; | 840 static HeapState gc_state_; |
840 | 841 |
841 // Returns the size of object residing in non new spaces. | 842 // Returns the size of object residing in non new spaces. |
842 static int PromotedSpaceSize(); | 843 static int PromotedSpaceSize(); |
(...skipping 484 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1327 int marked_count_; | 1328 int marked_count_; |
1328 | 1329 |
1329 // The count from the end of the previous full GC. Will be zero if there | 1330 // The count from the end of the previous full GC. Will be zero if there |
1330 // was no previous full GC. | 1331 // was no previous full GC. |
1331 int previous_marked_count_; | 1332 int previous_marked_count_; |
1332 }; | 1333 }; |
1333 | 1334 |
1334 } } // namespace v8::internal | 1335 } } // namespace v8::internal |
1335 | 1336 |
1336 #endif // V8_HEAP_H_ | 1337 #endif // V8_HEAP_H_ |
OLD | NEW |