| Index: src/heap/mark-compact.cc
|
| diff --git a/src/heap/mark-compact.cc b/src/heap/mark-compact.cc
|
| index 81122da6213bec889b403be6180bbd21d043b46c..0f45f7a6e8ab44d6906018b65a7540e8621b9508 100644
|
| --- a/src/heap/mark-compact.cc
|
| +++ b/src/heap/mark-compact.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "src/heap/mark-compact.h"
|
|
|
| +#include "include/v8-tracing.h"
|
| #include "src/base/atomicops.h"
|
| #include "src/base/bits.h"
|
| #include "src/base/sys-info.h"
|
| @@ -2236,17 +2237,21 @@ void MarkCompactCollector::VisitAllObjects(HeapObjectVisitor* visitor) {
|
| }
|
|
|
| void MarkCompactCollector::RecordObjectStats() {
|
| - if (FLAG_track_gc_object_stats) {
|
| + if (V8_UNLIKELY(FLAG_gc_stats)) {
|
| + heap()->CreateObjectStats();
|
| ObjectStatsVisitor visitor(heap(), heap()->live_object_stats_,
|
| heap()->dead_object_stats_);
|
| VisitAllObjects(&visitor);
|
| - std::stringstream live, dead;
|
| - heap()->live_object_stats_->Dump(live);
|
| - heap()->dead_object_stats_->Dump(dead);
|
| - TRACE_EVENT_INSTANT2(TRACE_DISABLED_BY_DEFAULT("v8.gc_stats"),
|
| - "V8.GC_Objects_Stats", TRACE_EVENT_SCOPE_THREAD,
|
| - "live", TRACE_STR_COPY(live.str().c_str()), "dead",
|
| - TRACE_STR_COPY(dead.str().c_str()));
|
| + if (V8_UNLIKELY(FLAG_gc_stats &
|
| + v8::tracing::TracingCategoryObserver::ENABLED_BY_TRACING)) {
|
| + std::stringstream live, dead;
|
| + heap()->live_object_stats_->Dump(live);
|
| + heap()->dead_object_stats_->Dump(dead);
|
| + TRACE_EVENT_INSTANT2(TRACE_DISABLED_BY_DEFAULT("v8.gc_stats"),
|
| + "V8.GC_Objects_Stats", TRACE_EVENT_SCOPE_THREAD,
|
| + "live", TRACE_STR_COPY(live.str().c_str()), "dead",
|
| + TRACE_STR_COPY(dead.str().c_str()));
|
| + }
|
| if (FLAG_trace_gc_object_stats) {
|
| heap()->live_object_stats_->PrintJSON("live");
|
| heap()->dead_object_stats_->PrintJSON("dead");
|
|
|