Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(230)

Side by Side Diff: test/unittests/heap/memory-reducer-unittest.cc

Issue 1705183003: Activate memory reducer for small heaps in background tabs. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: typo Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/heap/memory-reducer.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 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 <limits> 5 #include <limits>
6 6
7 #include "src/flags.h" 7 #include "src/flags.h"
8 #include "src/heap/memory-reducer.h" 8 #include "src/heap/memory-reducer.h"
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 10
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 67
68 MemoryReducer::Event TimerEventHighAllocationRate(double time_ms) { 68 MemoryReducer::Event TimerEventHighAllocationRate(double time_ms) {
69 return TimerEvent(time_ms, false, true); 69 return TimerEvent(time_ms, false, true);
70 } 70 }
71 71
72 72
73 MemoryReducer::Event TimerEventPendingGC(double time_ms) { 73 MemoryReducer::Event TimerEventPendingGC(double time_ms) {
74 return TimerEvent(time_ms, true, false); 74 return TimerEvent(time_ms, true, false);
75 } 75 }
76 76
77 77 MemoryReducer::Event PossibleGarbageEvent(double time_ms) {
78 MemoryReducer::Event ContextDisposedEvent(double time_ms) {
79 MemoryReducer::Event event; 78 MemoryReducer::Event event;
80 event.type = MemoryReducer::kContextDisposed; 79 event.type = MemoryReducer::kPossibleGarbage;
81 event.time_ms = time_ms; 80 event.time_ms = time_ms;
82 return event; 81 return event;
83 } 82 }
84 83
85 84
86 TEST(MemoryReducer, FromDoneToDone) { 85 TEST(MemoryReducer, FromDoneToDone) {
87 MemoryReducer::State state0(DoneState()), state1(DoneState()); 86 MemoryReducer::State state0(DoneState()), state1(DoneState());
88 87
89 state1 = MemoryReducer::Step(state0, TimerEventLowAllocationRate(0)); 88 state1 = MemoryReducer::Step(state0, TimerEventLowAllocationRate(0));
90 EXPECT_EQ(MemoryReducer::kDone, state1.action); 89 EXPECT_EQ(MemoryReducer::kDone, state1.action);
(...skipping 16 matching lines...) Expand all
107 EXPECT_EQ(MemoryReducer::kLongDelayMs + 2, state1.next_gc_start_ms); 106 EXPECT_EQ(MemoryReducer::kLongDelayMs + 2, state1.next_gc_start_ms);
108 EXPECT_EQ(0, state1.started_gcs); 107 EXPECT_EQ(0, state1.started_gcs);
109 EXPECT_EQ(2, state1.last_gc_time_ms); 108 EXPECT_EQ(2, state1.last_gc_time_ms);
110 109
111 state1 = MemoryReducer::Step(state0, MarkCompactEventNoGarbageLeft(2)); 110 state1 = MemoryReducer::Step(state0, MarkCompactEventNoGarbageLeft(2));
112 EXPECT_EQ(MemoryReducer::kWait, state1.action); 111 EXPECT_EQ(MemoryReducer::kWait, state1.action);
113 EXPECT_EQ(MemoryReducer::kLongDelayMs + 2, state1.next_gc_start_ms); 112 EXPECT_EQ(MemoryReducer::kLongDelayMs + 2, state1.next_gc_start_ms);
114 EXPECT_EQ(0, state1.started_gcs); 113 EXPECT_EQ(0, state1.started_gcs);
115 EXPECT_EQ(2, state1.last_gc_time_ms); 114 EXPECT_EQ(2, state1.last_gc_time_ms);
116 115
117 state1 = MemoryReducer::Step(state0, ContextDisposedEvent(0)); 116 state1 = MemoryReducer::Step(state0, PossibleGarbageEvent(0));
118 EXPECT_EQ(MemoryReducer::kWait, state1.action); 117 EXPECT_EQ(MemoryReducer::kWait, state1.action);
119 EXPECT_EQ(MemoryReducer::kLongDelayMs, state1.next_gc_start_ms); 118 EXPECT_EQ(MemoryReducer::kLongDelayMs, state1.next_gc_start_ms);
120 EXPECT_EQ(0, state1.started_gcs); 119 EXPECT_EQ(0, state1.started_gcs);
121 EXPECT_EQ(state0.last_gc_time_ms, state1.last_gc_time_ms); 120 EXPECT_EQ(state0.last_gc_time_ms, state1.last_gc_time_ms);
122 } 121 }
123 122
124 123
125 TEST(MemoryReducer, FromWaitToWait) { 124 TEST(MemoryReducer, FromWaitToWait) {
126 if (!FLAG_incremental_marking) return; 125 if (!FLAG_incremental_marking) return;
127 126
128 MemoryReducer::State state0(WaitState(2, 1000.0)), state1(DoneState()); 127 MemoryReducer::State state0(WaitState(2, 1000.0)), state1(DoneState());
129 128
130 state1 = MemoryReducer::Step(state0, ContextDisposedEvent(2000)); 129 state1 = MemoryReducer::Step(state0, PossibleGarbageEvent(2000));
131 EXPECT_EQ(MemoryReducer::kWait, state1.action); 130 EXPECT_EQ(MemoryReducer::kWait, state1.action);
132 EXPECT_EQ(state0.next_gc_start_ms, state1.next_gc_start_ms); 131 EXPECT_EQ(state0.next_gc_start_ms, state1.next_gc_start_ms);
133 EXPECT_EQ(state0.started_gcs, state1.started_gcs); 132 EXPECT_EQ(state0.started_gcs, state1.started_gcs);
134 133
135 state1 = MemoryReducer::Step( 134 state1 = MemoryReducer::Step(
136 state0, TimerEventLowAllocationRate(state0.next_gc_start_ms - 1)); 135 state0, TimerEventLowAllocationRate(state0.next_gc_start_ms - 1));
137 EXPECT_EQ(MemoryReducer::kWait, state1.action); 136 EXPECT_EQ(MemoryReducer::kWait, state1.action);
138 EXPECT_EQ(state0.next_gc_start_ms, state1.next_gc_start_ms); 137 EXPECT_EQ(state0.next_gc_start_ms, state1.next_gc_start_ms);
139 EXPECT_EQ(state0.started_gcs, state1.started_gcs); 138 EXPECT_EQ(state0.started_gcs, state1.started_gcs);
140 139
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 EXPECT_EQ(state0.next_gc_start_ms, state1.next_gc_start_ms); 242 EXPECT_EQ(state0.next_gc_start_ms, state1.next_gc_start_ms);
244 EXPECT_EQ(state0.started_gcs, state1.started_gcs); 243 EXPECT_EQ(state0.started_gcs, state1.started_gcs);
245 EXPECT_EQ(state0.last_gc_time_ms, state1.last_gc_time_ms); 244 EXPECT_EQ(state0.last_gc_time_ms, state1.last_gc_time_ms);
246 245
247 state1 = MemoryReducer::Step(state0, TimerEventPendingGC(2000)); 246 state1 = MemoryReducer::Step(state0, TimerEventPendingGC(2000));
248 EXPECT_EQ(MemoryReducer::kRun, state1.action); 247 EXPECT_EQ(MemoryReducer::kRun, state1.action);
249 EXPECT_EQ(state0.next_gc_start_ms, state1.next_gc_start_ms); 248 EXPECT_EQ(state0.next_gc_start_ms, state1.next_gc_start_ms);
250 EXPECT_EQ(state0.started_gcs, state1.started_gcs); 249 EXPECT_EQ(state0.started_gcs, state1.started_gcs);
251 EXPECT_EQ(state0.last_gc_time_ms, state1.last_gc_time_ms); 250 EXPECT_EQ(state0.last_gc_time_ms, state1.last_gc_time_ms);
252 251
253 state1 = MemoryReducer::Step(state0, ContextDisposedEvent(2000)); 252 state1 = MemoryReducer::Step(state0, PossibleGarbageEvent(2000));
254 EXPECT_EQ(MemoryReducer::kRun, state1.action); 253 EXPECT_EQ(MemoryReducer::kRun, state1.action);
255 EXPECT_EQ(state0.next_gc_start_ms, state1.next_gc_start_ms); 254 EXPECT_EQ(state0.next_gc_start_ms, state1.next_gc_start_ms);
256 EXPECT_EQ(state0.started_gcs, state1.started_gcs); 255 EXPECT_EQ(state0.started_gcs, state1.started_gcs);
257 EXPECT_EQ(state0.last_gc_time_ms, state1.last_gc_time_ms); 256 EXPECT_EQ(state0.last_gc_time_ms, state1.last_gc_time_ms);
258 } 257 }
259 258
260 259
261 TEST(MemoryReducer, FromRunToDone) { 260 TEST(MemoryReducer, FromRunToDone) {
262 if (!FLAG_incremental_marking) return; 261 if (!FLAG_incremental_marking) return;
263 262
(...skipping 29 matching lines...) Expand all
293 292
294 state1 = MemoryReducer::Step(state0, MarkCompactEventNoGarbageLeft(2000)); 293 state1 = MemoryReducer::Step(state0, MarkCompactEventNoGarbageLeft(2000));
295 EXPECT_EQ(MemoryReducer::kWait, state1.action); 294 EXPECT_EQ(MemoryReducer::kWait, state1.action);
296 EXPECT_EQ(2000 + MemoryReducer::kShortDelayMs, state1.next_gc_start_ms); 295 EXPECT_EQ(2000 + MemoryReducer::kShortDelayMs, state1.next_gc_start_ms);
297 EXPECT_EQ(state0.started_gcs, state1.started_gcs); 296 EXPECT_EQ(state0.started_gcs, state1.started_gcs);
298 EXPECT_EQ(2000, state1.last_gc_time_ms); 297 EXPECT_EQ(2000, state1.last_gc_time_ms);
299 } 298 }
300 299
301 } // namespace internal 300 } // namespace internal
302 } // namespace v8 301 } // namespace v8
OLDNEW
« no previous file with comments | « src/heap/memory-reducer.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698