| 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 |