author | Eric Rahm <erahm@mozilla.com> |
Wed, 10 Jun 2015 21:31:31 -0700 | |
changeset 248235 | 459140d723e8dc55b4a22a2e3032b52d403ee062 |
parent 248234 | 317521c8184846d12b87581d20f3ca593abd50f7 |
child 248236 | 347e2838d02841ca535eb774b602b03c35663679 |
push id | 28893 |
push user | kwierso@gmail.com |
push date | Fri, 12 Jun 2015 00:02:58 +0000 |
treeherder | autoland@8cf9d3e497f9 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | fitzgen |
bugs | 1171722 |
milestone | 41.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
js/public/GCAPI.h | file | annotate | diff | comparison | revisions | |
js/src/gc/Statistics.cpp | file | annotate | diff | comparison | revisions |
--- a/js/public/GCAPI.h +++ b/js/public/GCAPI.h @@ -327,19 +327,20 @@ enum GCProgress { GC_SLICE_BEGIN, GC_SLICE_END, GC_CYCLE_END }; struct JS_PUBLIC_API(GCDescription) { bool isCompartment_; JSGCInvocationKind invocationKind_; + gcreason::Reason reason_; - GCDescription(bool isCompartment, JSGCInvocationKind kind) - : isCompartment_(isCompartment), invocationKind_(kind) {} + GCDescription(bool isCompartment, JSGCInvocationKind kind, gcreason::Reason reason) + : isCompartment_(isCompartment), invocationKind_(kind), reason_(reason) {} char16_t* formatSliceMessage(JSRuntime* rt) const; char16_t* formatSummaryMessage(JSRuntime* rt) const; char16_t* formatJSON(JSRuntime* rt, uint64_t timestamp) const; JS::dbg::GarbageCollectionEvent::Ptr toGCEvent(JSRuntime* rt) const; };
--- a/js/src/gc/Statistics.cpp +++ b/js/src/gc/Statistics.cpp @@ -940,17 +940,17 @@ Statistics::beginSlice(const ZoneGCStats runtime->addTelemetry(JS_TELEMETRY_GC_REASON, reason); // Slice callbacks should only fire for the outermost level if (++gcDepth == 1) { bool wasFullGC = zoneStats.isCollectingAllZones(); if (sliceCallback) (*sliceCallback)(runtime, first ? JS::GC_CYCLE_BEGIN : JS::GC_SLICE_BEGIN, - JS::GCDescription(!wasFullGC, gckind)); + JS::GCDescription(!wasFullGC, gckind, reason)); } } void Statistics::endSlice() { if (!aborted) { slices.back().end = PRMJ_Now(); @@ -972,17 +972,17 @@ Statistics::endSlice() if (last) endGC(); // Slice callbacks should only fire for the outermost level if (--gcDepth == 0) { bool wasFullGC = zoneStats.isCollectingAllZones(); if (sliceCallback) (*sliceCallback)(runtime, last ? JS::GC_CYCLE_END : JS::GC_SLICE_END, - JS::GCDescription(!wasFullGC, gckind)); + JS::GCDescription(!wasFullGC, gckind, slices.back().reason)); } /* Do this after the slice callback since it uses these values. */ if (last) PodArrayZero(counts); } void