Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(25)

Side by Side Diff: src/heap.cc

Issue 310393003: Move most of the implementation of AdjustAmountOfExternalMemory to v8.h (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: updates Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/heap.h ('k') | src/heap-inl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/bootstrapper.h" 9 #include "src/bootstrapper.h"
10 #include "src/codegen.h" 10 #include "src/codegen.h"
(...skipping 26 matching lines...) Expand all
37 #if V8_TARGET_ARCH_MIPS && !V8_INTERPRETED_REGEXP 37 #if V8_TARGET_ARCH_MIPS && !V8_INTERPRETED_REGEXP
38 #include "src/regexp-macro-assembler.h" 38 #include "src/regexp-macro-assembler.h"
39 #include "src/mips/regexp-macro-assembler-mips.h" 39 #include "src/mips/regexp-macro-assembler-mips.h"
40 #endif 40 #endif
41 41
42 namespace v8 { 42 namespace v8 {
43 namespace internal { 43 namespace internal {
44 44
45 45
46 Heap::Heap() 46 Heap::Heap()
47 : isolate_(NULL), 47 : amount_of_external_allocated_memory_(0),
48 amount_of_external_allocated_memory_at_last_global_gc_(0),
49 isolate_(NULL),
48 code_range_size_(0), 50 code_range_size_(0),
49 // semispace_size_ should be a power of 2 and old_generation_size_ should be 51 // semispace_size_ should be a power of 2 and old_generation_size_ should be
50 // a multiple of Page::kPageSize. 52 // a multiple of Page::kPageSize.
51 reserved_semispace_size_(8 * (kPointerSize / 4) * MB), 53 reserved_semispace_size_(8 * (kPointerSize / 4) * MB),
52 max_semi_space_size_(8 * (kPointerSize / 4) * MB), 54 max_semi_space_size_(8 * (kPointerSize / 4) * MB),
53 initial_semispace_size_(Page::kPageSize), 55 initial_semispace_size_(Page::kPageSize),
54 max_old_generation_size_(700ul * (kPointerSize / 4) * MB), 56 max_old_generation_size_(700ul * (kPointerSize / 4) * MB),
55 max_executable_size_(256ul * (kPointerSize / 4) * MB), 57 max_executable_size_(256ul * (kPointerSize / 4) * MB),
56 // Variables set based on semispace_size_ and old_generation_size_ in 58 // Variables set based on semispace_size_ and old_generation_size_ in
57 // ConfigureHeap (survived_since_last_expansion_, external_allocation_limit_) 59 // ConfigureHeap.
58 // Will be 4 * reserved_semispace_size_ to ensure that young 60 // Will be 4 * reserved_semispace_size_ to ensure that young
59 // generation can be aligned to its size. 61 // generation can be aligned to its size.
60 maximum_committed_(0), 62 maximum_committed_(0),
61 old_space_growing_factor_(4), 63 old_space_growing_factor_(4),
62 survived_since_last_expansion_(0), 64 survived_since_last_expansion_(0),
63 sweep_generation_(0), 65 sweep_generation_(0),
64 always_allocate_scope_depth_(0), 66 always_allocate_scope_depth_(0),
65 linear_allocation_scope_depth_(0), 67 linear_allocation_scope_depth_(0),
66 contexts_disposed_(0), 68 contexts_disposed_(0),
67 global_ic_age_(0), 69 global_ic_age_(0),
(...skipping 11 matching lines...) Expand all
79 gc_post_processing_depth_(0), 81 gc_post_processing_depth_(0),
80 ms_count_(0), 82 ms_count_(0),
81 gc_count_(0), 83 gc_count_(0),
82 remembered_unmapped_pages_index_(0), 84 remembered_unmapped_pages_index_(0),
83 unflattened_strings_length_(0), 85 unflattened_strings_length_(0),
84 #ifdef DEBUG 86 #ifdef DEBUG
85 allocation_timeout_(0), 87 allocation_timeout_(0),
86 #endif // DEBUG 88 #endif // DEBUG
87 old_generation_allocation_limit_(kMinimumOldGenerationAllocationLimit), 89 old_generation_allocation_limit_(kMinimumOldGenerationAllocationLimit),
88 size_of_old_gen_at_last_old_space_gc_(0), 90 size_of_old_gen_at_last_old_space_gc_(0),
89 external_allocation_limit_(0),
90 amount_of_external_allocated_memory_(0),
91 amount_of_external_allocated_memory_at_last_global_gc_(0),
92 old_gen_exhausted_(false), 91 old_gen_exhausted_(false),
93 inline_allocation_disabled_(false), 92 inline_allocation_disabled_(false),
94 store_buffer_rebuilder_(store_buffer()), 93 store_buffer_rebuilder_(store_buffer()),
95 hidden_string_(NULL), 94 hidden_string_(NULL),
96 gc_safe_size_of_old_object_(NULL), 95 gc_safe_size_of_old_object_(NULL),
97 total_regexp_code_generated_(0), 96 total_regexp_code_generated_(0),
98 tracer_(NULL), 97 tracer_(NULL),
99 high_survival_rate_period_length_(0), 98 high_survival_rate_period_length_(0),
100 promoted_objects_size_(0), 99 promoted_objects_size_(0),
101 promotion_rate_(0), 100 promotion_rate_(0),
(...skipping 4901 matching lines...) Expand 10 before | Expand all | Expand 10 after
5003 PrintPID("Min semi-space size cannot be more than the maximum" 5002 PrintPID("Min semi-space size cannot be more than the maximum"
5004 "semi-space size of %d MB\n", max_semi_space_size_); 5003 "semi-space size of %d MB\n", max_semi_space_size_);
5005 } 5004 }
5006 } else { 5005 } else {
5007 initial_semispace_size_ = initial_semispace_size; 5006 initial_semispace_size_ = initial_semispace_size;
5008 } 5007 }
5009 } 5008 }
5010 5009
5011 initial_semispace_size_ = Min(initial_semispace_size_, max_semi_space_size_); 5010 initial_semispace_size_ = Min(initial_semispace_size_, max_semi_space_size_);
5012 5011
5013 // The external allocation limit should be below 256 MB on all architectures
5014 // to avoid that resource-constrained embedders run low on memory.
5015 external_allocation_limit_ = 192 * MB;
5016 ASSERT(external_allocation_limit_ <= 256 * MB);
5017
5018 // The old generation is paged and needs at least one page for each space. 5012 // The old generation is paged and needs at least one page for each space.
5019 int paged_space_count = LAST_PAGED_SPACE - FIRST_PAGED_SPACE + 1; 5013 int paged_space_count = LAST_PAGED_SPACE - FIRST_PAGED_SPACE + 1;
5020 max_old_generation_size_ = 5014 max_old_generation_size_ =
5021 Max(static_cast<intptr_t>(paged_space_count * Page::kPageSize), 5015 Max(static_cast<intptr_t>(paged_space_count * Page::kPageSize),
5022 max_old_generation_size_); 5016 max_old_generation_size_);
5023 5017
5024 // We rely on being able to allocate new arrays in paged spaces. 5018 // We rely on being able to allocate new arrays in paged spaces.
5025 ASSERT(Page::kMaxRegularHeapObjectSize >= 5019 ASSERT(Page::kMaxRegularHeapObjectSize >=
5026 (JSArray::kSize + 5020 (JSArray::kSize +
5027 FixedArray::SizeFor(JSObject::kInitialMaxFastElementArray) + 5021 FixedArray::SizeFor(JSObject::kInitialMaxFastElementArray) +
(...skipping 1408 matching lines...) Expand 10 before | Expand all | Expand 10 after
6436 static_cast<int>(object_sizes_last_time_[index])); 6430 static_cast<int>(object_sizes_last_time_[index]));
6437 CODE_AGE_LIST_COMPLETE(ADJUST_LAST_TIME_OBJECT_COUNT) 6431 CODE_AGE_LIST_COMPLETE(ADJUST_LAST_TIME_OBJECT_COUNT)
6438 #undef ADJUST_LAST_TIME_OBJECT_COUNT 6432 #undef ADJUST_LAST_TIME_OBJECT_COUNT
6439 6433
6440 MemCopy(object_counts_last_time_, object_counts_, sizeof(object_counts_)); 6434 MemCopy(object_counts_last_time_, object_counts_, sizeof(object_counts_));
6441 MemCopy(object_sizes_last_time_, object_sizes_, sizeof(object_sizes_)); 6435 MemCopy(object_sizes_last_time_, object_sizes_, sizeof(object_sizes_));
6442 ClearObjectStats(); 6436 ClearObjectStats();
6443 } 6437 }
6444 6438
6445 } } // namespace v8::internal 6439 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/heap.h ('k') | src/heap-inl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698