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

Side by Side Diff: src/heap/gc-tracer.h

Issue 2310143002: [heap] Introduce enum of garbage collection reasons. (Closed)
Patch Set: fix win Created 4 years, 3 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/factory.cc ('k') | src/heap/gc-tracer.cc » ('j') | 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 #ifndef V8_HEAP_GC_TRACER_H_ 5 #ifndef V8_HEAP_GC_TRACER_H_
6 #define V8_HEAP_GC_TRACER_H_ 6 #define V8_HEAP_GC_TRACER_H_
7 7
8 #include "src/base/compiler-specific.h" 8 #include "src/base/compiler-specific.h"
9 #include "src/base/platform/platform.h" 9 #include "src/base/platform/platform.h"
10 #include "src/counters.h" 10 #include "src/counters.h"
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 186
187 class Event { 187 class Event {
188 public: 188 public:
189 enum Type { 189 enum Type {
190 SCAVENGER = 0, 190 SCAVENGER = 0,
191 MARK_COMPACTOR = 1, 191 MARK_COMPACTOR = 1,
192 INCREMENTAL_MARK_COMPACTOR = 2, 192 INCREMENTAL_MARK_COMPACTOR = 2,
193 START = 3 193 START = 3
194 }; 194 };
195 195
196 Event(Type type, const char* gc_reason, const char* collector_reason); 196 Event(Type type, GarbageCollectionReason gc_reason,
197 const char* collector_reason);
197 198
198 // Returns a string describing the event type. 199 // Returns a string describing the event type.
199 const char* TypeName(bool short_name) const; 200 const char* TypeName(bool short_name) const;
200 201
201 // Type of event 202 // Type of event
202 Type type; 203 Type type;
203 204
204 const char* gc_reason; 205 GarbageCollectionReason gc_reason;
205 const char* collector_reason; 206 const char* collector_reason;
206 207
207 // Timestamp set in the constructor. 208 // Timestamp set in the constructor.
208 double start_time; 209 double start_time;
209 210
210 // Timestamp set in the destructor. 211 // Timestamp set in the destructor.
211 double end_time; 212 double end_time;
212 213
213 // Memory reduction flag set. 214 // Memory reduction flag set.
214 bool reduce_memory; 215 bool reduce_memory;
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 // Holds details for incremental marking scopes. 265 // Holds details for incremental marking scopes.
265 IncrementalMarkingInfos 266 IncrementalMarkingInfos
266 incremental_marking_scopes[Scope::NUMBER_OF_INCREMENTAL_SCOPES]; 267 incremental_marking_scopes[Scope::NUMBER_OF_INCREMENTAL_SCOPES];
267 }; 268 };
268 269
269 static const int kThroughputTimeFrameMs = 5000; 270 static const int kThroughputTimeFrameMs = 5000;
270 271
271 explicit GCTracer(Heap* heap); 272 explicit GCTracer(Heap* heap);
272 273
273 // Start collecting data. 274 // Start collecting data.
274 void Start(GarbageCollector collector, const char* gc_reason, 275 void Start(GarbageCollector collector, GarbageCollectionReason gc_reason,
275 const char* collector_reason); 276 const char* collector_reason);
276 277
277 // Stop collecting data and print results. 278 // Stop collecting data and print results.
278 void Stop(GarbageCollector collector); 279 void Stop(GarbageCollector collector);
279 280
280 // Sample and accumulate bytes allocated since the last GC. 281 // Sample and accumulate bytes allocated since the last GC.
281 void SampleAllocation(double current_ms, size_t new_space_counter_bytes, 282 void SampleAllocation(double current_ms, size_t new_space_counter_bytes,
282 size_t old_generation_counter_bytes); 283 size_t old_generation_counter_bytes);
283 284
284 // Log the accumulated new space allocation bytes. 285 // Log the accumulated new space allocation bytes.
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
387 V8_INLINE void AddScopeSample(Scope::ScopeId scope, double duration) { 388 V8_INLINE void AddScopeSample(Scope::ScopeId scope, double duration) {
388 DCHECK(scope < Scope::NUMBER_OF_SCOPES); 389 DCHECK(scope < Scope::NUMBER_OF_SCOPES);
389 if (scope >= Scope::FIRST_INCREMENTAL_SCOPE && 390 if (scope >= Scope::FIRST_INCREMENTAL_SCOPE &&
390 scope <= Scope::LAST_INCREMENTAL_SCOPE) { 391 scope <= Scope::LAST_INCREMENTAL_SCOPE) {
391 incremental_marking_scopes_[scope].Update(duration); 392 incremental_marking_scopes_[scope].Update(duration);
392 } else { 393 } else {
393 current_.scopes[scope] += duration; 394 current_.scopes[scope] += duration;
394 } 395 }
395 } 396 }
396 397
398 static const char* GarbageCollectionReasonToString(
Michael Lippautz 2016/09/07 07:28:31 nit: I would move the function somewhere into heap
ulan 2016/09/07 09:25:12 Done.
399 GarbageCollectionReason gc_reason);
400
397 private: 401 private:
398 FRIEND_TEST(GCTracer, AverageSpeed); 402 FRIEND_TEST(GCTracer, AverageSpeed);
399 FRIEND_TEST(GCTracerTest, AllocationThroughput); 403 FRIEND_TEST(GCTracerTest, AllocationThroughput);
400 FRIEND_TEST(GCTracerTest, NewSpaceAllocationThroughput); 404 FRIEND_TEST(GCTracerTest, NewSpaceAllocationThroughput);
401 FRIEND_TEST(GCTracerTest, NewSpaceAllocationThroughputWithProvidedTime); 405 FRIEND_TEST(GCTracerTest, NewSpaceAllocationThroughputWithProvidedTime);
402 FRIEND_TEST(GCTracerTest, OldGenerationAllocationThroughputWithProvidedTime); 406 FRIEND_TEST(GCTracerTest, OldGenerationAllocationThroughputWithProvidedTime);
403 FRIEND_TEST(GCTracerTest, RegularScope); 407 FRIEND_TEST(GCTracerTest, RegularScope);
404 FRIEND_TEST(GCTracerTest, IncrementalMarkingDetails); 408 FRIEND_TEST(GCTracerTest, IncrementalMarkingDetails);
405 FRIEND_TEST(GCTracerTest, IncrementalScope); 409 FRIEND_TEST(GCTracerTest, IncrementalScope);
406 410
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
509 RingBuffer<BytesAndDuration> recorded_old_generation_allocations_; 513 RingBuffer<BytesAndDuration> recorded_old_generation_allocations_;
510 RingBuffer<double> recorded_context_disposal_times_; 514 RingBuffer<double> recorded_context_disposal_times_;
511 RingBuffer<double> recorded_survival_ratios_; 515 RingBuffer<double> recorded_survival_ratios_;
512 516
513 DISALLOW_COPY_AND_ASSIGN(GCTracer); 517 DISALLOW_COPY_AND_ASSIGN(GCTracer);
514 }; 518 };
515 } // namespace internal 519 } // namespace internal
516 } // namespace v8 520 } // namespace v8
517 521
518 #endif // V8_HEAP_GC_TRACER_H_ 522 #endif // V8_HEAP_GC_TRACER_H_
OLDNEW
« no previous file with comments | « src/factory.cc ('k') | src/heap/gc-tracer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698