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

Side by Side Diff: src/heap/heap.cc

Issue 2371133002: [heap] Make committed counters on space size_t (Closed)
Patch Set: rebase Created 4 years, 2 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
« no previous file with comments | « src/heap/heap.h ('k') | src/heap/spaces.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/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/context-slot-cache.h" 9 #include "src/ast/context-slot-cache.h"
10 #include "src/base/bits.h" 10 #include "src/base/bits.h"
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 return new_space_->Capacity() + OldGenerationCapacity(); 185 return new_space_->Capacity() + OldGenerationCapacity();
186 } 186 }
187 187
188 intptr_t Heap::OldGenerationCapacity() { 188 intptr_t Heap::OldGenerationCapacity() {
189 if (!HasBeenSetUp()) return 0; 189 if (!HasBeenSetUp()) return 0;
190 190
191 return old_space_->Capacity() + code_space_->Capacity() + 191 return old_space_->Capacity() + code_space_->Capacity() +
192 map_space_->Capacity() + lo_space_->SizeOfObjects(); 192 map_space_->Capacity() + lo_space_->SizeOfObjects();
193 } 193 }
194 194
195 195 size_t Heap::CommittedOldGenerationMemory() {
196 intptr_t Heap::CommittedOldGenerationMemory() {
197 if (!HasBeenSetUp()) return 0; 196 if (!HasBeenSetUp()) return 0;
198 197
199 return old_space_->CommittedMemory() + code_space_->CommittedMemory() + 198 return old_space_->CommittedMemory() + code_space_->CommittedMemory() +
200 map_space_->CommittedMemory() + lo_space_->Size(); 199 map_space_->CommittedMemory() + lo_space_->Size();
201 } 200 }
202 201
203 202 size_t Heap::CommittedMemory() {
204 intptr_t Heap::CommittedMemory() {
205 if (!HasBeenSetUp()) return 0; 203 if (!HasBeenSetUp()) return 0;
206 204
207 return new_space_->CommittedMemory() + CommittedOldGenerationMemory(); 205 return new_space_->CommittedMemory() + CommittedOldGenerationMemory();
208 } 206 }
209 207
210 208
211 size_t Heap::CommittedPhysicalMemory() { 209 size_t Heap::CommittedPhysicalMemory() {
212 if (!HasBeenSetUp()) return 0; 210 if (!HasBeenSetUp()) return 0;
213 211
214 return new_space_->CommittedPhysicalMemory() + 212 return new_space_->CommittedPhysicalMemory() +
215 old_space_->CommittedPhysicalMemory() + 213 old_space_->CommittedPhysicalMemory() +
216 code_space_->CommittedPhysicalMemory() + 214 code_space_->CommittedPhysicalMemory() +
217 map_space_->CommittedPhysicalMemory() + 215 map_space_->CommittedPhysicalMemory() +
218 lo_space_->CommittedPhysicalMemory(); 216 lo_space_->CommittedPhysicalMemory();
219 } 217 }
220 218
221 219 size_t Heap::CommittedMemoryExecutable() {
222 intptr_t Heap::CommittedMemoryExecutable() {
223 if (!HasBeenSetUp()) return 0; 220 if (!HasBeenSetUp()) return 0;
224 221
225 return memory_allocator()->SizeExecutable(); 222 return static_cast<size_t>(memory_allocator()->SizeExecutable());
226 } 223 }
227 224
228 225
229 void Heap::UpdateMaximumCommitted() { 226 void Heap::UpdateMaximumCommitted() {
230 if (!HasBeenSetUp()) return; 227 if (!HasBeenSetUp()) return;
231 228
232 intptr_t current_committed_memory = CommittedMemory(); 229 const size_t current_committed_memory = CommittedMemory();
233 if (current_committed_memory > maximum_committed_) { 230 if (current_committed_memory > maximum_committed_) {
234 maximum_committed_ = current_committed_memory; 231 maximum_committed_ = current_committed_memory;
235 } 232 }
236 } 233 }
237 234
238 235
239 intptr_t Heap::Available() { 236 intptr_t Heap::Available() {
240 if (!HasBeenSetUp()) return 0; 237 if (!HasBeenSetUp()) return 0;
241 238
242 intptr_t total = 0; 239 intptr_t total = 0;
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
325 void Heap::PrintShortHeapStatistics() { 322 void Heap::PrintShortHeapStatistics() {
326 if (!FLAG_trace_gc_verbose) return; 323 if (!FLAG_trace_gc_verbose) return;
327 PrintIsolate(isolate_, "Memory allocator, used: %6" V8PRIdPTR 324 PrintIsolate(isolate_, "Memory allocator, used: %6" V8PRIdPTR
328 " KB, available: %6" V8PRIdPTR " KB\n", 325 " KB, available: %6" V8PRIdPTR " KB\n",
329 memory_allocator()->Size() / KB, 326 memory_allocator()->Size() / KB,
330 memory_allocator()->Available() / KB); 327 memory_allocator()->Available() / KB);
331 PrintIsolate(isolate_, "New space, used: %6" V8PRIdPTR 328 PrintIsolate(isolate_, "New space, used: %6" V8PRIdPTR
332 " KB" 329 " KB"
333 ", available: %6" V8PRIdPTR 330 ", available: %6" V8PRIdPTR
334 " KB" 331 " KB"
335 ", committed: %6" V8PRIdPTR " KB\n", 332 ", committed: %6zu KB\n",
336 new_space_->Size() / KB, new_space_->Available() / KB, 333 new_space_->Size() / KB, new_space_->Available() / KB,
337 new_space_->CommittedMemory() / KB); 334 new_space_->CommittedMemory() / KB);
338 PrintIsolate(isolate_, "Old space, used: %6" V8PRIdPTR 335 PrintIsolate(isolate_, "Old space, used: %6" V8PRIdPTR
339 " KB" 336 " KB"
340 ", available: %6" V8PRIdPTR 337 ", available: %6" V8PRIdPTR
341 " KB" 338 " KB"
342 ", committed: %6" V8PRIdPTR " KB\n", 339 ", committed: %6zu KB\n",
343 old_space_->SizeOfObjects() / KB, old_space_->Available() / KB, 340 old_space_->SizeOfObjects() / KB, old_space_->Available() / KB,
344 old_space_->CommittedMemory() / KB); 341 old_space_->CommittedMemory() / KB);
345 PrintIsolate(isolate_, "Code space, used: %6" V8PRIdPTR 342 PrintIsolate(isolate_, "Code space, used: %6" V8PRIdPTR
346 " KB" 343 " KB"
347 ", available: %6" V8PRIdPTR 344 ", available: %6" V8PRIdPTR
348 " KB" 345 " KB"
349 ", committed: %6" V8PRIdPTR " KB\n", 346 ", committed: %6zu KB\n",
350 code_space_->SizeOfObjects() / KB, code_space_->Available() / KB, 347 code_space_->SizeOfObjects() / KB, code_space_->Available() / KB,
351 code_space_->CommittedMemory() / KB); 348 code_space_->CommittedMemory() / KB);
352 PrintIsolate(isolate_, "Map space, used: %6" V8PRIdPTR 349 PrintIsolate(isolate_, "Map space, used: %6" V8PRIdPTR
353 " KB" 350 " KB"
354 ", available: %6" V8PRIdPTR 351 ", available: %6" V8PRIdPTR
355 " KB" 352 " KB"
356 ", committed: %6" V8PRIdPTR " KB\n", 353 ", committed: %6zu KB\n",
357 map_space_->SizeOfObjects() / KB, map_space_->Available() / KB, 354 map_space_->SizeOfObjects() / KB, map_space_->Available() / KB,
358 map_space_->CommittedMemory() / KB); 355 map_space_->CommittedMemory() / KB);
359 PrintIsolate(isolate_, "Large object space, used: %6" V8PRIdPTR 356 PrintIsolate(isolate_, "Large object space, used: %6" V8PRIdPTR
360 " KB" 357 " KB"
361 ", available: %6" V8PRIdPTR 358 ", available: %6" V8PRIdPTR
362 " KB" 359 " KB"
363 ", committed: %6" V8PRIdPTR " KB\n", 360 ", committed: %6zu KB\n",
364 lo_space_->SizeOfObjects() / KB, lo_space_->Available() / KB, 361 lo_space_->SizeOfObjects() / KB, lo_space_->Available() / KB,
365 lo_space_->CommittedMemory() / KB); 362 lo_space_->CommittedMemory() / KB);
366 PrintIsolate(isolate_, "All spaces, used: %6" V8PRIdPTR 363 PrintIsolate(isolate_, "All spaces, used: %6" V8PRIdPTR
367 " KB" 364 " KB"
368 ", available: %6" V8PRIdPTR 365 ", available: %6" V8PRIdPTR
369 " KB" 366 " KB"
370 ", committed: %6" V8PRIdPTR " KB\n", 367 ", committed: %6zu KB\n",
371 this->SizeOfObjects() / KB, this->Available() / KB, 368 this->SizeOfObjects() / KB, this->Available() / KB,
372 this->CommittedMemory() / KB); 369 this->CommittedMemory() / KB);
373 PrintIsolate(isolate_, "External memory reported: %6" V8PRIdPTR " KB\n", 370 PrintIsolate(isolate_, "External memory reported: %6" V8PRIdPTR " KB\n",
374 static_cast<intptr_t>(external_memory_ / KB)); 371 static_cast<intptr_t>(external_memory_ / KB));
375 PrintIsolate(isolate_, "Total time spent in GC : %.1f ms\n", 372 PrintIsolate(isolate_, "Total time spent in GC : %.1f ms\n",
376 total_gc_time_ms_); 373 total_gc_time_ms_);
377 } 374 }
378 375
379 // TODO(1238405): Combine the infrastructure for --heap-stats and 376 // TODO(1238405): Combine the infrastructure for --heap-stats and
380 // --log-gc to avoid the complicated preprocessor and flag testing. 377 // --log-gc to avoid the complicated preprocessor and flag testing.
(...skipping 921 matching lines...) Expand 10 before | Expand all | Expand 10 after
1302 ? GCTracer::Scope::MC_EXTERNAL_PROLOGUE 1299 ? GCTracer::Scope::MC_EXTERNAL_PROLOGUE
1303 : GCTracer::Scope::SCAVENGER_EXTERNAL_PROLOGUE); 1300 : GCTracer::Scope::SCAVENGER_EXTERNAL_PROLOGUE);
1304 VMState<EXTERNAL> state(isolate_); 1301 VMState<EXTERNAL> state(isolate_);
1305 HandleScope handle_scope(isolate_); 1302 HandleScope handle_scope(isolate_);
1306 CallGCPrologueCallbacks(gc_type, kNoGCCallbackFlags); 1303 CallGCPrologueCallbacks(gc_type, kNoGCCallbackFlags);
1307 } 1304 }
1308 } 1305 }
1309 1306
1310 EnsureFromSpaceIsCommitted(); 1307 EnsureFromSpaceIsCommitted();
1311 1308
1312 int start_new_space_size = Heap::new_space()->SizeAsInt(); 1309 int start_new_space_size = static_cast<int>(Heap::new_space()->Size());
1313 1310
1314 if (IsHighSurvivalRate()) { 1311 if (IsHighSurvivalRate()) {
1315 // We speed up the incremental marker if it is running so that it 1312 // We speed up the incremental marker if it is running so that it
1316 // does not fall behind the rate of promotion, which would cause a 1313 // does not fall behind the rate of promotion, which would cause a
1317 // constantly growing old space. 1314 // constantly growing old space.
1318 incremental_marking()->NotifyOfHighPromotionRate(); 1315 incremental_marking()->NotifyOfHighPromotionRate();
1319 } 1316 }
1320 1317
1321 { 1318 {
1322 Heap::PretenuringScope pretenuring_scope(this); 1319 Heap::PretenuringScope pretenuring_scope(this);
(...skipping 3837 matching lines...) Expand 10 before | Expand all | Expand 10 after
5160 memcpy(buffer + copied, trace_ring_buffer_, ring_buffer_end_); 5157 memcpy(buffer + copied, trace_ring_buffer_, ring_buffer_end_);
5161 } 5158 }
5162 5159
5163 5160
5164 bool Heap::ConfigureHeapDefault() { return ConfigureHeap(0, 0, 0, 0); } 5161 bool Heap::ConfigureHeapDefault() { return ConfigureHeap(0, 0, 0, 0); }
5165 5162
5166 5163
5167 void Heap::RecordStats(HeapStats* stats, bool take_snapshot) { 5164 void Heap::RecordStats(HeapStats* stats, bool take_snapshot) {
5168 *stats->start_marker = HeapStats::kStartMarker; 5165 *stats->start_marker = HeapStats::kStartMarker;
5169 *stats->end_marker = HeapStats::kEndMarker; 5166 *stats->end_marker = HeapStats::kEndMarker;
5170 *stats->new_space_size = new_space_->SizeAsInt(); 5167 *stats->new_space_size = new_space_->Size();
5171 *stats->new_space_capacity = new_space_->Capacity(); 5168 *stats->new_space_capacity = new_space_->Capacity();
5172 *stats->old_space_size = old_space_->SizeOfObjects(); 5169 *stats->old_space_size = old_space_->SizeOfObjects();
5173 *stats->old_space_capacity = old_space_->Capacity(); 5170 *stats->old_space_capacity = old_space_->Capacity();
5174 *stats->code_space_size = code_space_->SizeOfObjects(); 5171 *stats->code_space_size = code_space_->SizeOfObjects();
5175 *stats->code_space_capacity = code_space_->Capacity(); 5172 *stats->code_space_capacity = code_space_->Capacity();
5176 *stats->map_space_size = map_space_->SizeOfObjects(); 5173 *stats->map_space_size = map_space_->SizeOfObjects();
5177 *stats->map_space_capacity = map_space_->Capacity(); 5174 *stats->map_space_capacity = map_space_->Capacity();
5178 *stats->lo_space_size = lo_space_->Size(); 5175 *stats->lo_space_size = lo_space_->Size();
5179 isolate_->global_handles()->RecordStats(stats); 5176 isolate_->global_handles()->RecordStats(stats);
5180 *stats->memory_allocator_size = memory_allocator()->Size(); 5177 *stats->memory_allocator_size = memory_allocator()->Size();
(...skipping 1286 matching lines...) Expand 10 before | Expand all | Expand 10 after
6467 } 6464 }
6468 6465
6469 6466
6470 // static 6467 // static
6471 int Heap::GetStaticVisitorIdForMap(Map* map) { 6468 int Heap::GetStaticVisitorIdForMap(Map* map) {
6472 return StaticVisitorBase::GetVisitorId(map); 6469 return StaticVisitorBase::GetVisitorId(map);
6473 } 6470 }
6474 6471
6475 } // namespace internal 6472 } // namespace internal
6476 } // namespace v8 6473 } // namespace v8
OLDNEW
« no previous file with comments | « src/heap/heap.h ('k') | src/heap/spaces.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698