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/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 1287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1298 VMState<EXTERNAL> state(isolate_); | 1298 VMState<EXTERNAL> state(isolate_); |
1299 HandleScope handle_scope(isolate_); | 1299 HandleScope handle_scope(isolate_); |
1300 CallGCPrologueCallbacks(gc_type, kNoGCCallbackFlags); | 1300 CallGCPrologueCallbacks(gc_type, kNoGCCallbackFlags); |
1301 } | 1301 } |
1302 } | 1302 } |
1303 | 1303 |
1304 EnsureFromSpaceIsCommitted(); | 1304 EnsureFromSpaceIsCommitted(); |
1305 | 1305 |
1306 int start_new_space_size = Heap::new_space()->SizeAsInt(); | 1306 int start_new_space_size = Heap::new_space()->SizeAsInt(); |
1307 | 1307 |
| 1308 if (IsHighSurvivalRate()) { |
| 1309 // We speed up the incremental marker if it is running so that it |
| 1310 // does not fall behind the rate of promotion, which would cause a |
| 1311 // constantly growing old space. |
| 1312 incremental_marking()->NotifyOfHighPromotionRate(); |
| 1313 } |
| 1314 |
1308 { | 1315 { |
1309 Heap::PretenuringScope pretenuring_scope(this); | 1316 Heap::PretenuringScope pretenuring_scope(this); |
1310 | 1317 |
1311 if (collector == MARK_COMPACTOR) { | 1318 if (collector == MARK_COMPACTOR) { |
1312 UpdateOldGenerationAllocationCounter(); | 1319 UpdateOldGenerationAllocationCounter(); |
1313 // Perform mark-sweep with optional compaction. | 1320 // Perform mark-sweep with optional compaction. |
1314 MarkCompact(); | 1321 MarkCompact(); |
1315 old_gen_exhausted_ = false; | 1322 old_gen_exhausted_ = false; |
1316 old_generation_size_configured_ = true; | 1323 old_generation_size_configured_ = true; |
1317 // This should be updated before PostGarbageCollectionProcessing, which | 1324 // This should be updated before PostGarbageCollectionProcessing, which |
(...skipping 5182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6500 } | 6507 } |
6501 | 6508 |
6502 | 6509 |
6503 // static | 6510 // static |
6504 int Heap::GetStaticVisitorIdForMap(Map* map) { | 6511 int Heap::GetStaticVisitorIdForMap(Map* map) { |
6505 return StaticVisitorBase::GetVisitorId(map); | 6512 return StaticVisitorBase::GetVisitorId(map); |
6506 } | 6513 } |
6507 | 6514 |
6508 } // namespace internal | 6515 } // namespace internal |
6509 } // namespace v8 | 6516 } // namespace v8 |
OLD | NEW |