mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 03:15:11 +00:00
Bug 1673756 - Add GCCC subcategories for several phases of CC r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D99737
This commit is contained in:
parent
1257e9d853
commit
a1215827bb
@ -146,7 +146,7 @@ const char* const XPCJSRuntime::mStrings[] = {
|
||||
class AsyncFreeSnowWhite : public Runnable {
|
||||
public:
|
||||
NS_IMETHOD Run() override {
|
||||
AUTO_PROFILER_LABEL("AsyncFreeSnowWhite::Run", GCCC);
|
||||
AUTO_PROFILER_LABEL("AsyncFreeSnowWhite::Run", GCCC_FreeSnowWhite);
|
||||
|
||||
TimeStamp start = TimeStamp::Now();
|
||||
// 2 ms budget, given that kICCSliceBudget is only 3 ms
|
||||
|
@ -66,6 +66,11 @@
|
||||
SUBCATEGORY(GCCC, GCCC_MajorGC_Compact, "Major GC (Compact)") \
|
||||
SUBCATEGORY(GCCC, GCCC_UnmarkGray, "Unmark Gray") \
|
||||
SUBCATEGORY(GCCC, GCCC_Barrier, "Barrier") \
|
||||
SUBCATEGORY(GCCC, GCCC_FreeSnowWhite, "CC (Free Snow White)") \
|
||||
SUBCATEGORY(GCCC, GCCC_BuildGraph, "CC (Build Graph)") \
|
||||
SUBCATEGORY(GCCC, GCCC_ScanRoots, "CC (Scan Roots)") \
|
||||
SUBCATEGORY(GCCC, GCCC_CollectWhite, "CC (Collect White)") \
|
||||
SUBCATEGORY(GCCC, GCCC_Finalize, "CC (Finalize)") \
|
||||
END_CATEGORY \
|
||||
BEGIN_CATEGORY(NETWORK, "Network", "lightblue") \
|
||||
SUBCATEGORY(NETWORK, NETWORK, "Other") \
|
||||
|
@ -1594,6 +1594,9 @@ void IncrementalFinalizeRunnable::ReleaseNow(bool aLimited) {
|
||||
return;
|
||||
}
|
||||
{
|
||||
AUTO_PROFILER_LABEL("IncrementalFinalizeRunnable::ReleaseNow",
|
||||
GCCC_Finalize);
|
||||
|
||||
mozilla::AutoRestore<bool> ar(mReleasing);
|
||||
mReleasing = true;
|
||||
MOZ_ASSERT(mDeferredFinalizeFunctions.Length() != 0,
|
||||
@ -1643,8 +1646,6 @@ void IncrementalFinalizeRunnable::ReleaseNow(bool aLimited) {
|
||||
|
||||
NS_IMETHODIMP
|
||||
IncrementalFinalizeRunnable::Run() {
|
||||
AUTO_PROFILER_LABEL("IncrementalFinalizeRunnable::Run", GCCC);
|
||||
|
||||
if (!mDeferredFinalizeFunctions.Length()) {
|
||||
/* These items were already processed synchronously in JSGC_END. */
|
||||
MOZ_ASSERT(!mRuntime);
|
||||
|
@ -2594,6 +2594,8 @@ bool nsCycleCollector::FreeSnowWhite(bool aUntilNoSWInPurpleBuffer) {
|
||||
return false;
|
||||
}
|
||||
|
||||
AUTO_PROFILER_LABEL_CATEGORY_PAIR(GCCC_FreeSnowWhite);
|
||||
|
||||
AutoRestore<bool> ar(mFreeingSnowWhite);
|
||||
mFreeingSnowWhite = true;
|
||||
|
||||
@ -2616,6 +2618,7 @@ bool nsCycleCollector::FreeSnowWhiteWithBudget(js::SliceBudget& aBudget) {
|
||||
return false;
|
||||
}
|
||||
|
||||
AUTO_PROFILER_LABEL_CATEGORY_PAIR(GCCC_FreeSnowWhite);
|
||||
AutoRestore<bool> ar(mFreeingSnowWhite);
|
||||
mFreeingSnowWhite = true;
|
||||
|
||||
@ -2662,6 +2665,7 @@ MOZ_NEVER_INLINE void nsCycleCollector::MarkRoots(SliceBudget& aBudget) {
|
||||
mScanInProgress = true;
|
||||
MOZ_ASSERT(mIncrementalPhase == GraphBuildingPhase);
|
||||
|
||||
AUTO_PROFILER_LABEL_CATEGORY_PAIR(GCCC_BuildGraph);
|
||||
JS::AutoEnterCycleCollection autocc(Runtime()->Runtime());
|
||||
bool doneBuilding = mBuilder->BuildGraph(aBudget);
|
||||
|
||||
@ -3427,10 +3431,16 @@ bool nsCycleCollector::Collect(ccType aCCType, SliceBudget& aBudget,
|
||||
// that we won't unlink a live object if a weak reference is
|
||||
// promoted to a strong reference after ScanRoots has finished.
|
||||
// See bug 926533.
|
||||
PrintPhase("ScanRoots");
|
||||
ScanRoots(startedIdle);
|
||||
PrintPhase("CollectWhite");
|
||||
collectedAny = CollectWhite();
|
||||
{
|
||||
AUTO_PROFILER_LABEL_CATEGORY_PAIR(GCCC_ScanRoots);
|
||||
PrintPhase("ScanRoots");
|
||||
ScanRoots(startedIdle);
|
||||
}
|
||||
{
|
||||
AUTO_PROFILER_LABEL_CATEGORY_PAIR(GCCC_CollectWhite);
|
||||
PrintPhase("CollectWhite");
|
||||
collectedAny = CollectWhite();
|
||||
}
|
||||
break;
|
||||
case CleanupPhase:
|
||||
PrintPhase("CleanupAfterCollection");
|
||||
|
Loading…
Reference in New Issue
Block a user