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 #ifndef V8_HEAP_HEAP_H_ | 5 #ifndef V8_HEAP_HEAP_H_ |
6 #define V8_HEAP_HEAP_H_ | 6 #define V8_HEAP_HEAP_H_ |
7 | 7 |
8 #include <cmath> | 8 #include <cmath> |
9 #include <map> | 9 #include <map> |
10 | 10 |
11 #include "src/allocation.h" | 11 #include "src/allocation.h" |
12 #include "src/assert-scope.h" | 12 #include "src/assert-scope.h" |
13 #include "src/atomic-utils.h" | 13 #include "src/atomic-utils.h" |
14 #include "src/globals.h" | 14 #include "src/globals.h" |
15 #include "src/heap/gc-idle-time-handler.h" | |
16 #include "src/heap/incremental-marking.h" | 15 #include "src/heap/incremental-marking.h" |
17 #include "src/heap/mark-compact.h" | 16 #include "src/heap/mark-compact.h" |
18 #include "src/heap/spaces.h" | 17 #include "src/heap/spaces.h" |
19 #include "src/heap/store-buffer.h" | 18 #include "src/heap/store-buffer.h" |
20 #include "src/list.h" | 19 #include "src/list.h" |
21 | 20 |
22 namespace v8 { | 21 namespace v8 { |
23 namespace internal { | 22 namespace internal { |
24 | 23 |
25 // Defines all the roots in Heap. | 24 // Defines all the roots in Heap. |
(...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
415 V(UninitializedMap) \ | 414 V(UninitializedMap) \ |
416 V(ArgumentsMarkerMap) \ | 415 V(ArgumentsMarkerMap) \ |
417 V(JSMessageObjectMap) \ | 416 V(JSMessageObjectMap) \ |
418 V(ForeignMap) \ | 417 V(ForeignMap) \ |
419 V(NeanderMap) \ | 418 V(NeanderMap) \ |
420 V(empty_string) \ | 419 V(empty_string) \ |
421 PRIVATE_SYMBOL_LIST(V) | 420 PRIVATE_SYMBOL_LIST(V) |
422 | 421 |
423 // Forward declarations. | 422 // Forward declarations. |
424 class ArrayBufferTracker; | 423 class ArrayBufferTracker; |
| 424 class GCIdleTimeAction; |
| 425 class GCIdleTimeHandler; |
| 426 class GCIdleTimeHeapState; |
| 427 class GCTracer; |
425 class HeapObjectsFilter; | 428 class HeapObjectsFilter; |
426 class HeapStats; | 429 class HeapStats; |
427 class Isolate; | 430 class Isolate; |
428 class MemoryReducer; | 431 class MemoryReducer; |
429 class ObjectStats; | 432 class ObjectStats; |
430 class Scavenger; | 433 class Scavenger; |
431 class WeakObjectRetainer; | 434 class WeakObjectRetainer; |
432 | 435 |
433 | 436 |
434 // A queue of objects promoted during scavenge. Each object is accompanied | 437 // A queue of objects promoted during scavenge. Each object is accompanied |
(...skipping 1340 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1775 bool HasLowOldGenerationAllocationRate(); | 1778 bool HasLowOldGenerationAllocationRate(); |
1776 double YoungGenerationMutatorUtilization(); | 1779 double YoungGenerationMutatorUtilization(); |
1777 double OldGenerationMutatorUtilization(); | 1780 double OldGenerationMutatorUtilization(); |
1778 | 1781 |
1779 void ReduceNewSpaceSize(); | 1782 void ReduceNewSpaceSize(); |
1780 | 1783 |
1781 bool TryFinalizeIdleIncrementalMarking( | 1784 bool TryFinalizeIdleIncrementalMarking( |
1782 double idle_time_in_ms, size_t size_of_objects, | 1785 double idle_time_in_ms, size_t size_of_objects, |
1783 size_t mark_compact_speed_in_bytes_per_ms); | 1786 size_t mark_compact_speed_in_bytes_per_ms); |
1784 | 1787 |
1785 GCIdleTimeHandler::HeapState ComputeHeapState(); | 1788 GCIdleTimeHeapState ComputeHeapState(); |
1786 | 1789 |
1787 bool PerformIdleTimeAction(GCIdleTimeAction action, | 1790 bool PerformIdleTimeAction(GCIdleTimeAction action, |
1788 GCIdleTimeHandler::HeapState heap_state, | 1791 GCIdleTimeHeapState heap_state, |
1789 double deadline_in_ms); | 1792 double deadline_in_ms); |
1790 | 1793 |
1791 void IdleNotificationEpilogue(GCIdleTimeAction action, | 1794 void IdleNotificationEpilogue(GCIdleTimeAction action, |
1792 GCIdleTimeHandler::HeapState heap_state, | 1795 GCIdleTimeHeapState heap_state, double start_ms, |
1793 double start_ms, double deadline_in_ms); | 1796 double deadline_in_ms); |
1794 void CheckAndNotifyBackgroundIdleNotification(double idle_time_in_ms, | 1797 void CheckAndNotifyBackgroundIdleNotification(double idle_time_in_ms, |
1795 double now_ms); | 1798 double now_ms); |
1796 | 1799 |
1797 inline void UpdateAllocationsHash(HeapObject* object); | 1800 inline void UpdateAllocationsHash(HeapObject* object); |
1798 inline void UpdateAllocationsHash(uint32_t value); | 1801 inline void UpdateAllocationsHash(uint32_t value); |
1799 void PrintAlloctionsHash(); | 1802 void PrintAlloctionsHash(); |
1800 | 1803 |
1801 void AddToRingBuffer(const char* string); | 1804 void AddToRingBuffer(const char* string); |
1802 void GetFromRingBuffer(char* buffer); | 1805 void GetFromRingBuffer(char* buffer); |
1803 | 1806 |
(...skipping 449 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2253 double last_gc_time_; | 2256 double last_gc_time_; |
2254 | 2257 |
2255 Scavenger* scavenge_collector_; | 2258 Scavenger* scavenge_collector_; |
2256 | 2259 |
2257 MarkCompactCollector mark_compact_collector_; | 2260 MarkCompactCollector mark_compact_collector_; |
2258 | 2261 |
2259 StoreBuffer store_buffer_; | 2262 StoreBuffer store_buffer_; |
2260 | 2263 |
2261 IncrementalMarking incremental_marking_; | 2264 IncrementalMarking incremental_marking_; |
2262 | 2265 |
2263 GCIdleTimeHandler gc_idle_time_handler_; | 2266 GCIdleTimeHandler* gc_idle_time_handler_; |
2264 | 2267 |
2265 MemoryReducer* memory_reducer_; | 2268 MemoryReducer* memory_reducer_; |
2266 | 2269 |
2267 ObjectStats* object_stats_; | 2270 ObjectStats* object_stats_; |
2268 | 2271 |
2269 // These two counters are monotomically increasing and never reset. | 2272 // These two counters are monotomically increasing and never reset. |
2270 size_t full_codegen_bytes_generated_; | 2273 size_t full_codegen_bytes_generated_; |
2271 size_t crankshaft_codegen_bytes_generated_; | 2274 size_t crankshaft_codegen_bytes_generated_; |
2272 | 2275 |
2273 // This counter is increased before each GC and never reset. | 2276 // This counter is increased before each GC and never reset. |
(...skipping 426 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2700 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. | 2703 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. |
2701 | 2704 |
2702 private: | 2705 private: |
2703 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); | 2706 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); |
2704 }; | 2707 }; |
2705 #endif // DEBUG | 2708 #endif // DEBUG |
2706 } | 2709 } |
2707 } // namespace v8::internal | 2710 } // namespace v8::internal |
2708 | 2711 |
2709 #endif // V8_HEAP_HEAP_H_ | 2712 #endif // V8_HEAP_HEAP_H_ |
OLD | NEW |