| OLD | NEW |
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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_SPACES_H_ | 5 #ifndef V8_HEAP_SPACES_H_ |
| 6 #define V8_HEAP_SPACES_H_ | 6 #define V8_HEAP_SPACES_H_ |
| 7 | 7 |
| 8 #include <list> | 8 #include <list> |
| 9 #include <memory> | 9 #include <memory> |
| 10 #include <unordered_set> | 10 #include <unordered_set> |
| (...skipping 698 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 709 static_cast<intptr_t>(MemoryChunk::POINTERS_TO_HERE_ARE_INTERESTING) | | 709 static_cast<intptr_t>(MemoryChunk::POINTERS_TO_HERE_ARE_INTERESTING) | |
| 710 static_cast<intptr_t>(MemoryChunk::POINTERS_FROM_HERE_ARE_INTERESTING); | 710 static_cast<intptr_t>(MemoryChunk::POINTERS_FROM_HERE_ARE_INTERESTING); |
| 711 | 711 |
| 712 // Maximum object size that gets allocated into regular pages. Objects larger | 712 // Maximum object size that gets allocated into regular pages. Objects larger |
| 713 // than that size are allocated in large object space and are never moved in | 713 // than that size are allocated in large object space and are never moved in |
| 714 // memory. This also applies to new space allocation, since objects are never | 714 // memory. This also applies to new space allocation, since objects are never |
| 715 // migrated from new space to large object space. Takes double alignment into | 715 // migrated from new space to large object space. Takes double alignment into |
| 716 // account. | 716 // account. |
| 717 // TODO(hpayer): This limit should be way smaller but we currently have | 717 // TODO(hpayer): This limit should be way smaller but we currently have |
| 718 // short living objects >256K. | 718 // short living objects >256K. |
| 719 static const int kMaxRegularHeapObjectSize = 600 * KB; | 719 static const int kMaxRegularHeapObjectSize = 512 * KB - Page::kHeaderSize; |
| 720 | 720 |
| 721 static inline Page* ConvertNewToOld(Page* old_page, PagedSpace* new_owner); | 721 static inline Page* ConvertNewToOld(Page* old_page, PagedSpace* new_owner); |
| 722 | 722 |
| 723 // Returns the page containing a given address. The address ranges | 723 // Returns the page containing a given address. The address ranges |
| 724 // from [page_addr .. page_addr + kPageSize[. This only works if the object | 724 // from [page_addr .. page_addr + kPageSize[. This only works if the object |
| 725 // is in fact in a page. | 725 // is in fact in a page. |
| 726 static Page* FromAddress(Address addr) { | 726 static Page* FromAddress(Address addr) { |
| 727 return reinterpret_cast<Page*>(OffsetFrom(addr) & ~kPageAlignmentMask); | 727 return reinterpret_cast<Page*>(OffsetFrom(addr) & ~kPageAlignmentMask); |
| 728 } | 728 } |
| 729 | 729 |
| (...skipping 2301 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3031 count = 0; | 3031 count = 0; |
| 3032 } | 3032 } |
| 3033 // Must be small, since an iteration is used for lookup. | 3033 // Must be small, since an iteration is used for lookup. |
| 3034 static const int kMaxComments = 64; | 3034 static const int kMaxComments = 64; |
| 3035 }; | 3035 }; |
| 3036 #endif | 3036 #endif |
| 3037 } // namespace internal | 3037 } // namespace internal |
| 3038 } // namespace v8 | 3038 } // namespace v8 |
| 3039 | 3039 |
| 3040 #endif // V8_HEAP_SPACES_H_ | 3040 #endif // V8_HEAP_SPACES_H_ |
| OLD | NEW |