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/v8.h" | 5 #include "src/v8.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/base/bits.h" | 9 #include "src/base/bits.h" |
10 #include "src/base/once.h" | 10 #include "src/base/once.h" |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 amount_of_external_allocated_memory_at_last_global_gc_(0), | 60 amount_of_external_allocated_memory_at_last_global_gc_(0), |
61 isolate_(NULL), | 61 isolate_(NULL), |
62 code_range_size_(0), | 62 code_range_size_(0), |
63 // semispace_size_ should be a power of 2 and old_generation_size_ should | 63 // semispace_size_ should be a power of 2 and old_generation_size_ should |
64 // be a multiple of Page::kPageSize. | 64 // be a multiple of Page::kPageSize. |
65 reserved_semispace_size_(8 * (kPointerSize / 4) * MB), | 65 reserved_semispace_size_(8 * (kPointerSize / 4) * MB), |
66 max_semi_space_size_(8 * (kPointerSize / 4) * MB), | 66 max_semi_space_size_(8 * (kPointerSize / 4) * MB), |
67 initial_semispace_size_(Page::kPageSize), | 67 initial_semispace_size_(Page::kPageSize), |
68 target_semispace_size_(Page::kPageSize), | 68 target_semispace_size_(Page::kPageSize), |
69 max_old_generation_size_(700ul * (kPointerSize / 4) * MB), | 69 max_old_generation_size_(700ul * (kPointerSize / 4) * MB), |
70 initial_old_generation_size_(max_old_generation_size_), | 70 initial_old_generation_size_(max_old_generation_size_ / |
| 71 kInitalOldGenerationLimitFactor), |
71 old_generation_size_configured_(false), | 72 old_generation_size_configured_(false), |
72 max_executable_size_(256ul * (kPointerSize / 4) * MB), | 73 max_executable_size_(256ul * (kPointerSize / 4) * MB), |
73 // Variables set based on semispace_size_ and old_generation_size_ in | 74 // Variables set based on semispace_size_ and old_generation_size_ in |
74 // ConfigureHeap. | 75 // ConfigureHeap. |
75 // Will be 4 * reserved_semispace_size_ to ensure that young | 76 // Will be 4 * reserved_semispace_size_ to ensure that young |
76 // generation can be aligned to its size. | 77 // generation can be aligned to its size. |
77 maximum_committed_(0), | 78 maximum_committed_(0), |
78 survived_since_last_expansion_(0), | 79 survived_since_last_expansion_(0), |
79 survived_last_scavenge_(0), | 80 survived_last_scavenge_(0), |
80 sweep_generation_(0), | 81 sweep_generation_(0), |
(...skipping 5193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5274 | 5275 |
5275 // The old generation is paged and needs at least one page for each space. | 5276 // The old generation is paged and needs at least one page for each space. |
5276 int paged_space_count = LAST_PAGED_SPACE - FIRST_PAGED_SPACE + 1; | 5277 int paged_space_count = LAST_PAGED_SPACE - FIRST_PAGED_SPACE + 1; |
5277 max_old_generation_size_ = | 5278 max_old_generation_size_ = |
5278 Max(static_cast<intptr_t>(paged_space_count * Page::kPageSize), | 5279 Max(static_cast<intptr_t>(paged_space_count * Page::kPageSize), |
5279 max_old_generation_size_); | 5280 max_old_generation_size_); |
5280 | 5281 |
5281 if (FLAG_initial_old_space_size > 0) { | 5282 if (FLAG_initial_old_space_size > 0) { |
5282 initial_old_generation_size_ = FLAG_initial_old_space_size * MB; | 5283 initial_old_generation_size_ = FLAG_initial_old_space_size * MB; |
5283 } else { | 5284 } else { |
5284 initial_old_generation_size_ = max_old_generation_size_ / 2; | 5285 initial_old_generation_size_ = |
| 5286 max_old_generation_size_ / kInitalOldGenerationLimitFactor; |
5285 } | 5287 } |
5286 old_generation_allocation_limit_ = initial_old_generation_size_; | 5288 old_generation_allocation_limit_ = initial_old_generation_size_; |
5287 | 5289 |
5288 // We rely on being able to allocate new arrays in paged spaces. | 5290 // We rely on being able to allocate new arrays in paged spaces. |
5289 DCHECK(Page::kMaxRegularHeapObjectSize >= | 5291 DCHECK(Page::kMaxRegularHeapObjectSize >= |
5290 (JSArray::kSize + | 5292 (JSArray::kSize + |
5291 FixedArray::SizeFor(JSObject::kInitialMaxFastElementArray) + | 5293 FixedArray::SizeFor(JSObject::kInitialMaxFastElementArray) + |
5292 AllocationMemento::kSize)); | 5294 AllocationMemento::kSize)); |
5293 | 5295 |
5294 code_range_size_ = code_range_size * MB; | 5296 code_range_size_ = code_range_size * MB; |
(...skipping 1225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6520 static_cast<int>(object_sizes_last_time_[index])); | 6522 static_cast<int>(object_sizes_last_time_[index])); |
6521 CODE_AGE_LIST_COMPLETE(ADJUST_LAST_TIME_OBJECT_COUNT) | 6523 CODE_AGE_LIST_COMPLETE(ADJUST_LAST_TIME_OBJECT_COUNT) |
6522 #undef ADJUST_LAST_TIME_OBJECT_COUNT | 6524 #undef ADJUST_LAST_TIME_OBJECT_COUNT |
6523 | 6525 |
6524 MemCopy(object_counts_last_time_, object_counts_, sizeof(object_counts_)); | 6526 MemCopy(object_counts_last_time_, object_counts_, sizeof(object_counts_)); |
6525 MemCopy(object_sizes_last_time_, object_sizes_, sizeof(object_sizes_)); | 6527 MemCopy(object_sizes_last_time_, object_sizes_, sizeof(object_sizes_)); |
6526 ClearObjectStats(); | 6528 ClearObjectStats(); |
6527 } | 6529 } |
6528 } | 6530 } |
6529 } // namespace v8::internal | 6531 } // namespace v8::internal |
OLD | NEW |