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