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

Unified Diff: src/heap/gc-tracer.cc

Issue 2269093002: [heap] GCTracer: Record details for incremental marking (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@tracer-reland
Patch Set: Fix regression in ::Stop and inline ::AddScopeSample Created 4 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/heap/gc-tracer.h ('k') | src/heap/incremental-marking.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/heap/gc-tracer.cc
diff --git a/src/heap/gc-tracer.cc b/src/heap/gc-tracer.cc
index b4af3ff169f5c5864d5c20ce6a47655f74ef94fe..666a56818f8e78259eb7186572791de76aa19adb 100644
--- a/src/heap/gc-tracer.cc
+++ b/src/heap/gc-tracer.cc
@@ -40,16 +40,6 @@ GCTracer::Scope::~Scope() {
}
}
-void GCTracer::AddScopeSample(Scope::ScopeId scope, double duration) {
- DCHECK(scope < Scope::NUMBER_OF_SCOPES);
- if (scope >= Scope::FIRST_INCREMENTAL_SCOPE &&
- scope <= Scope::LAST_INCREMENTAL_SCOPE) {
- cumulative_incremental_scopes_[scope] += duration;
- } else {
- current_.scopes[scope] += duration;
- }
-}
-
const char* GCTracer::Scope::Name(ScopeId id) {
#define CASE(scope) \
case Scope::scope: \
@@ -79,23 +69,10 @@ GCTracer::Event::Event(Type type, const char* gc_reason,
end_holes_size(0),
new_space_object_size(0),
survived_new_space_object_size(0),
- cumulative_incremental_marking_steps(0),
- incremental_marking_steps(0),
cumulative_incremental_marking_bytes(0),
incremental_marking_bytes(0),
- cumulative_incremental_marking_duration(0.0),
- incremental_marking_duration(0.0),
cumulative_pure_incremental_marking_duration(0.0),
- pure_incremental_marking_duration(0.0),
- longest_incremental_marking_step(0.0),
- cumulative_incremental_marking_finalization_steps(0),
- cumulative_incremental_marking_finalizaton_duration(0),
- longest_incremental_marking_finalization_step(0),
- incremental_marking_finalizaton_steps(0),
- incremental_marking_finalization_duration(0) {
- for (int i = 0; i < Scope::NUMBER_OF_INCREMENTAL_SCOPES; i++) {
- cumulative_incremental_scopes[i] = 0;
- }
+ pure_incremental_marking_duration(0.0) {
for (int i = 0; i < Scope::NUMBER_OF_SCOPES; i++) {
scopes[i] = 0;
}
@@ -127,17 +104,14 @@ const char* GCTracer::Event::TypeName(bool short_name) const {
return "Unknown Event Type";
}
-
GCTracer::GCTracer(Heap* heap)
: heap_(heap),
- cumulative_incremental_marking_steps_(0),
+ current_(Event::START, nullptr, nullptr),
+ previous_(current_),
+ previous_incremental_mark_compactor_event_(current_),
cumulative_incremental_marking_bytes_(0),
cumulative_incremental_marking_duration_(0.0),
cumulative_pure_incremental_marking_duration_(0.0),
- longest_incremental_marking_step_(0.0),
- cumulative_incremental_marking_finalization_steps_(0),
- cumulative_incremental_marking_finalization_duration_(0.0),
- longest_incremental_marking_finalization_step_(0.0),
cumulative_marking_duration_(0.0),
cumulative_sweeping_duration_(0.0),
allocation_time_ms_(0.0),
@@ -148,20 +122,13 @@ GCTracer::GCTracer(Heap* heap)
old_generation_allocation_in_bytes_since_gc_(0),
combined_mark_compact_speed_cache_(0.0),
start_counter_(0) {
- current_ = Event(Event::START, NULL, NULL);
current_.end_time = heap_->MonotonicallyIncreasingTimeInMs();
- previous_ = previous_incremental_mark_compactor_event_ = current_;
}
void GCTracer::ResetForTesting() {
- cumulative_incremental_marking_steps_ = 0.0;
cumulative_incremental_marking_bytes_ = 0.0;
cumulative_incremental_marking_duration_ = 0.0;
cumulative_pure_incremental_marking_duration_ = 0.0;
- longest_incremental_marking_step_ = 0.0;
- cumulative_incremental_marking_finalization_steps_ = 0.0;
- cumulative_incremental_marking_finalization_duration_ = 0.0;
- longest_incremental_marking_finalization_step_ = 0.0;
cumulative_marking_duration_ = 0.0;
cumulative_sweeping_duration_ = 0.0;
allocation_time_ms_ = 0.0;
@@ -173,7 +140,9 @@ void GCTracer::ResetForTesting() {
combined_mark_compact_speed_cache_ = 0.0;
start_counter_ = 0;
for (int i = 0; i < Scope::NUMBER_OF_INCREMENTAL_SCOPES; i++) {
- cumulative_incremental_scopes_[i] = 0;
+ incremental_marking_scopes_[i].cumulative_duration = 0.0;
+ incremental_marking_scopes_[i].steps = 0;
+ incremental_marking_scopes_[i].longest_step = 0.0;
}
current_ = Event(Event::START, NULL, NULL);
current_.end_time = heap_->MonotonicallyIncreasingTimeInMs();
@@ -211,21 +180,10 @@ void GCTracer::Start(GarbageCollector collector, const char* gc_reason,
current_.new_space_object_size =
heap_->new_space()->top() - heap_->new_space()->bottom();
- current_.cumulative_incremental_marking_steps =
- cumulative_incremental_marking_steps_;
current_.cumulative_incremental_marking_bytes =
cumulative_incremental_marking_bytes_;
- current_.cumulative_incremental_marking_duration =
- cumulative_incremental_marking_duration_;
current_.cumulative_pure_incremental_marking_duration =
cumulative_pure_incremental_marking_duration_;
- current_.longest_incremental_marking_step = longest_incremental_marking_step_;
- current_.cumulative_incremental_marking_finalization_steps =
- cumulative_incremental_marking_finalization_steps_;
- current_.cumulative_incremental_marking_finalizaton_duration =
- cumulative_incremental_marking_finalization_duration_;
- current_.longest_incremental_marking_finalization_step =
- longest_incremental_marking_finalization_step_;
for (int i = 0; i < Scope::NUMBER_OF_SCOPES; i++) {
current_.scopes[i] = 0;
@@ -243,12 +201,27 @@ void GCTracer::Start(GarbageCollector collector, const char* gc_reason,
}
}
+void GCTracer::MergeBaseline(const Event& baseline) {
+ current_.incremental_marking_bytes =
+ current_.cumulative_incremental_marking_bytes -
+ baseline.cumulative_incremental_marking_bytes;
+ current_.pure_incremental_marking_duration =
+ current_.cumulative_pure_incremental_marking_duration -
+ baseline.cumulative_pure_incremental_marking_duration;
+ for (int i = Scope::FIRST_INCREMENTAL_SCOPE;
+ i <= Scope::LAST_INCREMENTAL_SCOPE; i++) {
+ current_.scopes[i] =
+ current_.incremental_marking_scopes[i].cumulative_duration -
+ baseline.incremental_marking_scopes[i].cumulative_duration;
+ }
+}
+
void GCTracer::Stop(GarbageCollector collector) {
start_counter_--;
if (start_counter_ != 0) {
- Output("[Finished reentrant %s during %s.]\n",
- collector == SCAVENGER ? "Scavenge" : "Mark-sweep",
- current_.TypeName(false));
+ PrintIsolate(heap_->isolate(), "[Finished reentrant %s during %s.]\n",
+ collector == SCAVENGER ? "Scavenge" : "Mark-sweep",
+ current_.TypeName(false));
return;
}
@@ -260,8 +233,7 @@ void GCTracer::Stop(GarbageCollector collector) {
for (int i = Scope::FIRST_INCREMENTAL_SCOPE;
i <= Scope::LAST_INCREMENTAL_SCOPE; i++) {
- current_.cumulative_incremental_scopes[i] =
- cumulative_incremental_scopes_[i];
+ current_.incremental_marking_scopes[i] = incremental_marking_scopes_[i];
}
current_.end_time = heap_->MonotonicallyIncreasingTimeInMs();
@@ -281,57 +253,31 @@ void GCTracer::Stop(GarbageCollector collector) {
double duration = current_.end_time - current_.start_time;
- const Event* baseline = nullptr;
if (current_.type == Event::SCAVENGER) {
- baseline = &previous_;
+ MergeBaseline(previous_);
recorded_scavenges_total_.Push(
MakeBytesAndDuration(current_.new_space_object_size, duration));
recorded_scavenges_survived_.Push(MakeBytesAndDuration(
current_.survived_new_space_object_size, duration));
} else if (current_.type == Event::INCREMENTAL_MARK_COMPACTOR) {
- baseline = &previous_incremental_mark_compactor_event_;
- longest_incremental_marking_step_ = 0.0;
- longest_incremental_marking_finalization_step_ = 0.0;
+ MergeBaseline(previous_incremental_mark_compactor_event_);
recorded_incremental_marking_steps_.Push(
MakeBytesAndDuration(current_.incremental_marking_bytes,
current_.pure_incremental_marking_duration));
recorded_incremental_mark_compacts_.Push(
MakeBytesAndDuration(current_.start_object_size, duration));
combined_mark_compact_speed_cache_ = 0.0;
+ for (int i = 0; i <= Scope::NUMBER_OF_INCREMENTAL_SCOPES; i++) {
+ incremental_marking_scopes_[i].ResetCurrentCycle();
+ }
} else {
DCHECK(current_.incremental_marking_bytes == 0);
- DCHECK(current_.incremental_marking_duration == 0);
DCHECK(current_.pure_incremental_marking_duration == 0);
- longest_incremental_marking_step_ = 0.0;
- longest_incremental_marking_finalization_step_ = 0.0;
recorded_mark_compacts_.Push(
MakeBytesAndDuration(current_.start_object_size, duration));
combined_mark_compact_speed_cache_ = 0.0;
- }
-
- if (baseline != nullptr) {
- current_.incremental_marking_steps =
- current_.cumulative_incremental_marking_steps -
- baseline->cumulative_incremental_marking_steps;
- current_.incremental_marking_bytes =
- current_.cumulative_incremental_marking_bytes -
- baseline->cumulative_incremental_marking_bytes;
- current_.incremental_marking_duration =
- current_.cumulative_incremental_marking_duration -
- baseline->cumulative_incremental_marking_duration;
- current_.pure_incremental_marking_duration =
- current_.cumulative_pure_incremental_marking_duration -
- baseline->cumulative_pure_incremental_marking_duration;
- current_.incremental_marking_finalizaton_steps =
- current_.cumulative_incremental_marking_finalization_steps -
- baseline->cumulative_incremental_marking_finalization_steps;
- current_.incremental_marking_finalization_duration =
- current_.cumulative_incremental_marking_finalizaton_duration -
- baseline->cumulative_incremental_marking_finalizaton_duration;
- for (int i = Scope::FIRST_INCREMENTAL_SCOPE;
- i <= Scope::LAST_INCREMENTAL_SCOPE; i++) {
- current_.scopes[i] = current_.cumulative_incremental_scopes[i] -
- baseline->cumulative_incremental_scopes[i];
+ for (int i = 0; i <= Scope::NUMBER_OF_INCREMENTAL_SCOPES; i++) {
+ incremental_marking_scopes_[i].ResetCurrentCycle();
}
}
@@ -420,26 +366,14 @@ void GCTracer::AddSurvivalRatio(double promotion_ratio) {
void GCTracer::AddIncrementalMarkingStep(double duration, intptr_t bytes) {
- cumulative_incremental_marking_steps_++;
cumulative_incremental_marking_bytes_ += bytes;
cumulative_incremental_marking_duration_ += duration;
- longest_incremental_marking_step_ =
- Max(longest_incremental_marking_step_, duration);
cumulative_marking_duration_ += duration;
if (bytes > 0) {
cumulative_pure_incremental_marking_duration_ += duration;
}
}
-
-void GCTracer::AddIncrementalMarkingFinalizationStep(double duration) {
- cumulative_incremental_marking_finalization_steps_++;
- cumulative_incremental_marking_finalization_duration_ += duration;
- longest_incremental_marking_finalization_step_ =
- Max(longest_incremental_marking_finalization_step_, duration);
-}
-
-
void GCTracer::Output(const char* format, ...) const {
if (FLAG_trace_gc) {
va_list arguments;
@@ -461,46 +395,46 @@ void GCTracer::Output(const char* format, ...) const {
void GCTracer::Print() const {
- if (FLAG_trace_gc) {
- PrintIsolate(heap_->isolate(), "%s", "");
- }
- Output("%8.0f ms: ", heap_->isolate()->time_millis_since_init());
-
- Output("%s %.1f (%.1f) -> %.1f (%.1f) MB, ", current_.TypeName(false),
- static_cast<double>(current_.start_object_size) / MB,
- static_cast<double>(current_.start_memory_size) / MB,
- static_cast<double>(current_.end_object_size) / MB,
- static_cast<double>(current_.end_memory_size) / MB);
-
double duration = current_.end_time - current_.start_time;
- Output("%.1f / %.1f ms", duration, TotalExternalTime());
-
- if (current_.type == Event::SCAVENGER) {
- if (current_.incremental_marking_steps > 0) {
- Output(" (+ %.1f ms in %d steps since last GC)",
- current_.incremental_marking_duration,
- current_.incremental_marking_steps);
- }
- } else {
- if (current_.incremental_marking_steps > 0) {
- Output(
+ const size_t kIncrementalStatsSize = 128;
+ char incremental_buffer[kIncrementalStatsSize] = {0};
+
+ if (current_.incremental_marking_scopes[Scope::MC_INCREMENTAL].steps > 0) {
+ if (current_.type == Event::SCAVENGER) {
+ base::OS::SNPrintF(
+ incremental_buffer, kIncrementalStatsSize,
+ " (+ %.1f ms in %d steps since last GC)",
+ current_.scopes[Scope::MC_INCREMENTAL],
+ current_.incremental_marking_scopes[Scope::MC_INCREMENTAL].steps);
+ } else {
+ base::OS::SNPrintF(
+ incremental_buffer, kIncrementalStatsSize,
" (+ %.1f ms in %d steps since start of marking, "
"biggest step %.1f ms)",
- current_.incremental_marking_duration,
- current_.incremental_marking_steps,
- current_.longest_incremental_marking_step);
+ current_.scopes[Scope::MC_INCREMENTAL],
+ current_.incremental_marking_scopes[Scope::MC_INCREMENTAL].steps,
+ current_.incremental_marking_scopes[Scope::MC_INCREMENTAL]
+ .longest_step);
}
}
- if (current_.gc_reason != NULL) {
- Output(" [%s]", current_.gc_reason);
- }
-
- if (current_.collector_reason != NULL) {
- Output(" [%s]", current_.collector_reason);
- }
-
- Output(".\n");
+ // Avoid PrintF as Output also appends the string to the tracing ring buffer
+ // that gets printed on OOM failures.
+ Output(
+ "[%d:%p] "
+ "%8.0f ms: "
+ "%s %.1f (%.1f) -> %.1f (%.1f) MB, "
+ "%.1f / %.1f ms %s %s %s\n",
+ base::OS::GetCurrentProcessId(),
+ reinterpret_cast<void*>(heap_->isolate()),
+ heap_->isolate()->time_millis_since_init(), current_.TypeName(false),
+ static_cast<double>(current_.start_object_size) / MB,
+ static_cast<double>(current_.start_memory_size) / MB,
+ static_cast<double>(current_.end_object_size) / MB,
+ static_cast<double>(current_.end_memory_size) / MB, duration,
+ TotalExternalTime(), incremental_buffer,
+ current_.gc_reason != nullptr ? current_.gc_reason : "",
+ current_.collector_reason != nullptr ? current_.collector_reason : "");
}
@@ -512,74 +446,75 @@ void GCTracer::PrintNVP() const {
switch (current_.type) {
case Event::SCAVENGER:
- PrintIsolate(heap_->isolate(),
- "%8.0f ms: "
- "pause=%.1f "
- "mutator=%.1f "
- "gc=%s "
- "reduce_memory=%d "
- "scavenge=%.2f "
- "old_new=%.2f "
- "weak=%.2f "
- "roots=%.2f "
- "code=%.2f "
- "semispace=%.2f "
- "object_groups=%.2f "
- "external_prologue=%.2f "
- "external_epilogue=%.2f "
- "external_weak_global_handles=%.2f "
- "steps_count=%d "
- "steps_took=%.1f "
- "scavenge_throughput=%.f "
- "total_size_before=%" V8PRIdPTR
- " "
- "total_size_after=%" V8PRIdPTR
- " "
- "holes_size_before=%" V8PRIdPTR
- " "
- "holes_size_after=%" V8PRIdPTR
- " "
- "allocated=%" V8PRIdPTR
- " "
- "promoted=%" V8PRIdPTR
- " "
- "semi_space_copied=%" V8PRIdPTR
- " "
- "nodes_died_in_new=%d "
- "nodes_copied_in_new=%d "
- "nodes_promoted=%d "
- "promotion_ratio=%.1f%% "
- "average_survival_ratio=%.1f%% "
- "promotion_rate=%.1f%% "
- "semi_space_copy_rate=%.1f%% "
- "new_space_allocation_throughput=%.1f "
- "context_disposal_rate=%.1f\n",
- heap_->isolate()->time_millis_since_init(), duration,
- spent_in_mutator, current_.TypeName(true),
- current_.reduce_memory,
- current_.scopes[Scope::SCAVENGER_SCAVENGE],
- current_.scopes[Scope::SCAVENGER_OLD_TO_NEW_POINTERS],
- current_.scopes[Scope::SCAVENGER_WEAK],
- current_.scopes[Scope::SCAVENGER_ROOTS],
- current_.scopes[Scope::SCAVENGER_CODE_FLUSH_CANDIDATES],
- current_.scopes[Scope::SCAVENGER_SEMISPACE],
- current_.scopes[Scope::SCAVENGER_OBJECT_GROUPS],
- current_.scopes[Scope::SCAVENGER_EXTERNAL_PROLOGUE],
- current_.scopes[Scope::SCAVENGER_EXTERNAL_EPILOGUE],
- current_.scopes[Scope::EXTERNAL_WEAK_GLOBAL_HANDLES],
- current_.incremental_marking_steps,
- current_.incremental_marking_duration,
- ScavengeSpeedInBytesPerMillisecond(),
- current_.start_object_size, current_.end_object_size,
- current_.start_holes_size, current_.end_holes_size,
- allocated_since_last_gc, heap_->promoted_objects_size(),
- heap_->semi_space_copied_object_size(),
- heap_->nodes_died_in_new_space_,
- heap_->nodes_copied_in_new_space_, heap_->nodes_promoted_,
- heap_->promotion_ratio_, AverageSurvivalRatio(),
- heap_->promotion_rate_, heap_->semi_space_copied_rate_,
- NewSpaceAllocationThroughputInBytesPerMillisecond(),
- ContextDisposalRateInMilliseconds());
+ PrintIsolate(
+ heap_->isolate(),
+ "%8.0f ms: "
+ "pause=%.1f "
+ "mutator=%.1f "
+ "gc=%s "
+ "reduce_memory=%d "
+ "scavenge=%.2f "
+ "old_new=%.2f "
+ "weak=%.2f "
+ "roots=%.2f "
+ "code=%.2f "
+ "semispace=%.2f "
+ "object_groups=%.2f "
+ "external_prologue=%.2f "
+ "external_epilogue=%.2f "
+ "external_weak_global_handles=%.2f "
+ "steps_count=%d "
+ "steps_took=%.1f "
+ "scavenge_throughput=%.f "
+ "total_size_before=%" V8PRIdPTR
+ " "
+ "total_size_after=%" V8PRIdPTR
+ " "
+ "holes_size_before=%" V8PRIdPTR
+ " "
+ "holes_size_after=%" V8PRIdPTR
+ " "
+ "allocated=%" V8PRIdPTR
+ " "
+ "promoted=%" V8PRIdPTR
+ " "
+ "semi_space_copied=%" V8PRIdPTR
+ " "
+ "nodes_died_in_new=%d "
+ "nodes_copied_in_new=%d "
+ "nodes_promoted=%d "
+ "promotion_ratio=%.1f%% "
+ "average_survival_ratio=%.1f%% "
+ "promotion_rate=%.1f%% "
+ "semi_space_copy_rate=%.1f%% "
+ "new_space_allocation_throughput=%.1f "
+ "context_disposal_rate=%.1f\n",
+ heap_->isolate()->time_millis_since_init(), duration,
+ spent_in_mutator, current_.TypeName(true), current_.reduce_memory,
+ current_.scopes[Scope::SCAVENGER_SCAVENGE],
+ current_.scopes[Scope::SCAVENGER_OLD_TO_NEW_POINTERS],
+ current_.scopes[Scope::SCAVENGER_WEAK],
+ current_.scopes[Scope::SCAVENGER_ROOTS],
+ current_.scopes[Scope::SCAVENGER_CODE_FLUSH_CANDIDATES],
+ current_.scopes[Scope::SCAVENGER_SEMISPACE],
+ current_.scopes[Scope::SCAVENGER_OBJECT_GROUPS],
+ current_.scopes[Scope::SCAVENGER_EXTERNAL_PROLOGUE],
+ current_.scopes[Scope::SCAVENGER_EXTERNAL_EPILOGUE],
+ current_.scopes[Scope::EXTERNAL_WEAK_GLOBAL_HANDLES],
+ current_.incremental_marking_scopes[GCTracer::Scope::MC_INCREMENTAL]
+ .steps,
+ current_.scopes[Scope::MC_INCREMENTAL],
+ ScavengeSpeedInBytesPerMillisecond(), current_.start_object_size,
+ current_.end_object_size, current_.start_holes_size,
+ current_.end_holes_size, allocated_since_last_gc,
+ heap_->promoted_objects_size(),
+ heap_->semi_space_copied_object_size(),
+ heap_->nodes_died_in_new_space_, heap_->nodes_copied_in_new_space_,
+ heap_->nodes_promoted_, heap_->promotion_ratio_,
+ AverageSurvivalRatio(), heap_->promotion_rate_,
+ heap_->semi_space_copied_rate_,
+ NewSpaceAllocationThroughputInBytesPerMillisecond(),
+ ContextDisposalRateInMilliseconds());
break;
case Event::MARK_COMPACTOR:
case Event::INCREMENTAL_MARK_COMPACTOR:
@@ -632,15 +567,17 @@ void GCTracer::PrintNVP() const {
"sweep.old=%.1f "
"incremental=%.1f "
"incremental.finalize=%.1f "
+ "incremental.finalize.body=%.1f "
"incremental.finalize.external.prologue=%.1f "
"incremental.finalize.external.epilogue=%.1f "
"incremental.finalize.object_grouping=%.1f "
"incremental.wrapper_prologue=%.1f "
"incremental.wrapper_tracing=%.1f "
+ "incremental_wrapper_tracing_longest_step=%.1f "
"incremental_finalize_longest_step=%.1f "
"incremental_finalize_steps_count=%d "
- "incremental_steps_count=%d "
"incremental_longest_step=%.1f "
+ "incremental_steps_count=%d "
"incremental_marking_throughput=%.f "
"total_size_before=%" V8PRIdPTR
" "
@@ -707,17 +644,26 @@ void GCTracer::PrintNVP() const {
current_.scopes[Scope::MC_SWEEP_CODE],
current_.scopes[Scope::MC_SWEEP_MAP],
current_.scopes[Scope::MC_SWEEP_OLD],
- current_.incremental_marking_duration,
+ current_.scopes[Scope::MC_INCREMENTAL],
current_.scopes[Scope::MC_INCREMENTAL_FINALIZE],
+ current_.scopes[Scope::MC_INCREMENTAL_FINALIZE_BODY],
current_.scopes[Scope::MC_INCREMENTAL_EXTERNAL_PROLOGUE],
current_.scopes[Scope::MC_INCREMENTAL_EXTERNAL_EPILOGUE],
current_.scopes[Scope::MC_INCREMENTAL_FINALIZE_OBJECT_GROUPING],
current_.scopes[Scope::MC_INCREMENTAL_WRAPPER_PROLOGUE],
current_.scopes[Scope::MC_INCREMENTAL_WRAPPER_TRACING],
- current_.longest_incremental_marking_finalization_step,
- current_.incremental_marking_finalizaton_steps,
- current_.incremental_marking_steps,
- current_.longest_incremental_marking_step,
+ current_
+ .incremental_marking_scopes[Scope::MC_INCREMENTAL_WRAPPER_TRACING]
+ .longest_step,
+ current_
+ .incremental_marking_scopes[Scope::MC_INCREMENTAL_FINALIZE_BODY]
+ .longest_step,
+ current_
+ .incremental_marking_scopes[Scope::MC_INCREMENTAL_FINALIZE_BODY]
+ .steps,
+ current_.incremental_marking_scopes[Scope::MC_INCREMENTAL]
+ .longest_step,
+ current_.incremental_marking_scopes[Scope::MC_INCREMENTAL].steps,
IncrementalMarkingSpeedInBytesPerMillisecond(),
current_.start_object_size, current_.end_object_size,
current_.start_holes_size, current_.end_holes_size,
« no previous file with comments | « src/heap/gc-tracer.h ('k') | src/heap/incremental-marking.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698