| 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_H_ | 5 #ifndef V8_HEAP_H_ |
| 6 #define V8_HEAP_H_ | 6 #define V8_HEAP_H_ |
| 7 | 7 |
| 8 #include <cmath> | 8 #include <cmath> |
| 9 | 9 |
| 10 #include "src/allocation.h" | 10 #include "src/allocation.h" |
| (...skipping 2044 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2055 // - a number less than 10 for small heaps, which are less than 8Mb. | 2055 // - a number less than 10 for small heaps, which are less than 8Mb. |
| 2056 // - a number greater than 10 for large heaps, which are greater than 32Mb. | 2056 // - a number greater than 10 for large heaps, which are greater than 32Mb. |
| 2057 int TimeMarkSweepWouldTakeInMs() { | 2057 int TimeMarkSweepWouldTakeInMs() { |
| 2058 // Rough estimate of how many megabytes of heap can be processed in 1 ms. | 2058 // Rough estimate of how many megabytes of heap can be processed in 1 ms. |
| 2059 static const int kMbPerMs = 2; | 2059 static const int kMbPerMs = 2; |
| 2060 | 2060 |
| 2061 int heap_size_mb = static_cast<int>(SizeOfObjects() / MB); | 2061 int heap_size_mb = static_cast<int>(SizeOfObjects() / MB); |
| 2062 return heap_size_mb / kMbPerMs; | 2062 return heap_size_mb / kMbPerMs; |
| 2063 } | 2063 } |
| 2064 | 2064 |
| 2065 // Returns true if no more GC work is left. | |
| 2066 bool IdleGlobalGC(); | |
| 2067 | |
| 2068 void AdvanceIdleIncrementalMarking(intptr_t step_size); | 2065 void AdvanceIdleIncrementalMarking(intptr_t step_size); |
| 2069 | 2066 |
| 2070 void ClearObjectStats(bool clear_last_time_stats = false); | 2067 void ClearObjectStats(bool clear_last_time_stats = false); |
| 2071 | 2068 |
| 2072 void set_weak_object_to_code_table(Object* value) { | 2069 void set_weak_object_to_code_table(Object* value) { |
| 2073 ASSERT(!InNewSpace(value)); | 2070 ASSERT(!InNewSpace(value)); |
| 2074 weak_object_to_code_table_ = value; | 2071 weak_object_to_code_table_ = value; |
| 2075 } | 2072 } |
| 2076 | 2073 |
| 2077 Object** weak_object_to_code_table_address() { | 2074 Object** weak_object_to_code_table_address() { |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2112 double sweeping_time_; | 2109 double sweeping_time_; |
| 2113 | 2110 |
| 2114 MarkCompactCollector mark_compact_collector_; | 2111 MarkCompactCollector mark_compact_collector_; |
| 2115 | 2112 |
| 2116 StoreBuffer store_buffer_; | 2113 StoreBuffer store_buffer_; |
| 2117 | 2114 |
| 2118 Marking marking_; | 2115 Marking marking_; |
| 2119 | 2116 |
| 2120 IncrementalMarking incremental_marking_; | 2117 IncrementalMarking incremental_marking_; |
| 2121 | 2118 |
| 2122 int number_idle_notifications_; | |
| 2123 unsigned int last_idle_notification_gc_count_; | |
| 2124 bool last_idle_notification_gc_count_init_; | |
| 2125 | |
| 2126 int mark_sweeps_since_idle_round_started_; | 2119 int mark_sweeps_since_idle_round_started_; |
| 2127 unsigned int gc_count_at_last_idle_gc_; | 2120 unsigned int gc_count_at_last_idle_gc_; |
| 2128 int scavenges_since_last_idle_round_; | 2121 int scavenges_since_last_idle_round_; |
| 2129 | 2122 |
| 2130 // These two counters are monotomically increasing and never reset. | 2123 // These two counters are monotomically increasing and never reset. |
| 2131 size_t full_codegen_bytes_generated_; | 2124 size_t full_codegen_bytes_generated_; |
| 2132 size_t crankshaft_codegen_bytes_generated_; | 2125 size_t crankshaft_codegen_bytes_generated_; |
| 2133 | 2126 |
| 2134 // If the --deopt_every_n_garbage_collections flag is set to a positive value, | 2127 // If the --deopt_every_n_garbage_collections flag is set to a positive value, |
| 2135 // this variable holds the number of garbage collections since the last | 2128 // this variable holds the number of garbage collections since the last |
| (...skipping 635 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2771 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. | 2764 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. |
| 2772 | 2765 |
| 2773 private: | 2766 private: |
| 2774 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); | 2767 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); |
| 2775 }; | 2768 }; |
| 2776 #endif // DEBUG | 2769 #endif // DEBUG |
| 2777 | 2770 |
| 2778 } } // namespace v8::internal | 2771 } } // namespace v8::internal |
| 2779 | 2772 |
| 2780 #endif // V8_HEAP_H_ | 2773 #endif // V8_HEAP_H_ |
| OLD | NEW |