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 #include "src/heap/heap.h" | 5 #include "src/heap/heap.h" |
6 | 6 |
7 #include "src/accessors.h" | 7 #include "src/accessors.h" |
8 #include "src/api.h" | 8 #include "src/api.h" |
9 #include "src/ast/scopeinfo.h" | 9 #include "src/ast/scopeinfo.h" |
10 #include "src/base/bits.h" | 10 #include "src/base/bits.h" |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
155 promotion_queue_(this), | 155 promotion_queue_(this), |
156 configured_(false), | 156 configured_(false), |
157 current_gc_flags_(Heap::kNoGCFlags), | 157 current_gc_flags_(Heap::kNoGCFlags), |
158 current_gc_callback_flags_(GCCallbackFlags::kNoGCCallbackFlags), | 158 current_gc_callback_flags_(GCCallbackFlags::kNoGCCallbackFlags), |
159 external_string_table_(this), | 159 external_string_table_(this), |
160 chunks_queued_for_free_(NULL), | 160 chunks_queued_for_free_(NULL), |
161 concurrent_unmapping_tasks_active_(0), | 161 concurrent_unmapping_tasks_active_(0), |
162 pending_unmapping_tasks_semaphore_(0), | 162 pending_unmapping_tasks_semaphore_(0), |
163 gc_callbacks_depth_(0), | 163 gc_callbacks_depth_(0), |
164 deserialization_complete_(false), | 164 deserialization_complete_(false), |
165 concurrent_sweeping_enabled_(false), | |
166 strong_roots_list_(NULL), | 165 strong_roots_list_(NULL), |
167 array_buffer_tracker_(NULL) { | 166 array_buffer_tracker_(NULL) { |
168 // Allow build-time customization of the max semispace size. Building | 167 // Allow build-time customization of the max semispace size. Building |
169 // V8 with snapshots and a non-default max semispace size is much | 168 // V8 with snapshots and a non-default max semispace size is much |
170 // easier if you can define it as part of the build environment. | 169 // easier if you can define it as part of the build environment. |
171 #if defined(V8_MAX_SEMISPACE_SIZE) | 170 #if defined(V8_MAX_SEMISPACE_SIZE) |
172 max_semi_space_size_ = reserved_semispace_size_ = V8_MAX_SEMISPACE_SIZE; | 171 max_semi_space_size_ = reserved_semispace_size_ = V8_MAX_SEMISPACE_SIZE; |
173 #endif | 172 #endif |
174 | 173 |
175 // Ensure old_generation_size_ is a multiple of kPageSize. | 174 // Ensure old_generation_size_ is a multiple of kPageSize. |
(...skipping 4821 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4997 // call Heap::TearDown() to release allocated memory. | 4996 // call Heap::TearDown() to release allocated memory. |
4998 // | 4997 // |
4999 // If the heap is not yet configured (e.g. through the API), configure it. | 4998 // If the heap is not yet configured (e.g. through the API), configure it. |
5000 // Configuration is based on the flags new-space-size (really the semispace | 4999 // Configuration is based on the flags new-space-size (really the semispace |
5001 // size) and old-space-size if set or the initial values of semispace_size_ | 5000 // size) and old-space-size if set or the initial values of semispace_size_ |
5002 // and old_generation_size_ otherwise. | 5001 // and old_generation_size_ otherwise. |
5003 if (!configured_) { | 5002 if (!configured_) { |
5004 if (!ConfigureHeapDefault()) return false; | 5003 if (!ConfigureHeapDefault()) return false; |
5005 } | 5004 } |
5006 | 5005 |
5007 concurrent_sweeping_enabled_ = FLAG_concurrent_sweeping; | |
5008 | |
5009 base::CallOnce(&initialize_gc_once, &InitializeGCOnce); | 5006 base::CallOnce(&initialize_gc_once, &InitializeGCOnce); |
5010 | 5007 |
5011 // Set up memory allocator. | 5008 // Set up memory allocator. |
5012 if (!isolate_->memory_allocator()->SetUp(MaxReserved(), MaxExecutableSize())) | 5009 if (!isolate_->memory_allocator()->SetUp(MaxReserved(), MaxExecutableSize())) |
5013 return false; | 5010 return false; |
5014 | 5011 |
5015 // Initialize incremental marking. | 5012 // Initialize incremental marking. |
5016 incremental_marking_ = new IncrementalMarking(this); | 5013 incremental_marking_ = new IncrementalMarking(this); |
5017 | 5014 |
5018 // Set up new space. | 5015 // Set up new space. |
(...skipping 1137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6156 } | 6153 } |
6157 | 6154 |
6158 | 6155 |
6159 // static | 6156 // static |
6160 int Heap::GetStaticVisitorIdForMap(Map* map) { | 6157 int Heap::GetStaticVisitorIdForMap(Map* map) { |
6161 return StaticVisitorBase::GetVisitorId(map); | 6158 return StaticVisitorBase::GetVisitorId(map); |
6162 } | 6159 } |
6163 | 6160 |
6164 } // namespace internal | 6161 } // namespace internal |
6165 } // namespace v8 | 6162 } // namespace v8 |
OLD | NEW |