Bug 726007 - Add telemetry probes for forgetSkippable, r=mccr8

--HG--
extra : rebase_source : aa3a24a53fc95c41bbe460bba732cc5e024107dc
This commit is contained in:
Olli Pettay 2012-02-11 01:30:20 +02:00
parent 85616ac65b
commit a5365aab08
2 changed files with 15 additions and 15 deletions

View File

@ -3310,6 +3310,9 @@ nsJSContext::CycleCollectNow(nsICycleCollectorListener *aListener,
}
sLastCCEndTime = now;
Telemetry::Accumulate(Telemetry::FORGET_SKIPPABLE_MAX,
sMaxForgetSkippableTime / PR_USEC_PER_MSEC);
if (sPostGCEventsToConsole) {
PRTime delta = 0;
if (sFirstCollectionTime) {
@ -3382,25 +3385,20 @@ CCTimerFired(nsITimer *aTimer, void *aClosure)
return;
}
PRTime startTime;
if (sPostGCEventsToConsole) {
startTime = PR_Now();
}
PRTime startTime = PR_Now();
nsCycleCollector_forgetSkippable();
sPreviousSuspectedCount = nsCycleCollector_suspectedCount();
sCleanupSinceLastGC = true;
if (sPostGCEventsToConsole) {
PRTime delta = PR_Now() - startTime;
if (sMinForgetSkippableTime > delta) {
sMinForgetSkippableTime = delta;
}
if (sMaxForgetSkippableTime < delta) {
sMaxForgetSkippableTime = delta;
}
sTotalForgetSkippableTime += delta;
sRemovedPurples += (suspected - sPreviousSuspectedCount);
++sForgetSkippableBeforeCC;
PRTime delta = PR_Now() - startTime;
if (sMinForgetSkippableTime > delta) {
sMinForgetSkippableTime = delta;
}
if (sMaxForgetSkippableTime < delta) {
sMaxForgetSkippableTime = delta;
}
sTotalForgetSkippableTime += delta;
sRemovedPurples += (suspected - sPreviousSuspectedCount);
++sForgetSkippableBeforeCC;
} else {
sPreviousSuspectedCount = 0;
nsJSContext::KillCCTimer();

View File

@ -71,6 +71,8 @@ HISTOGRAM(CYCLE_COLLECTOR_COLLECTED, 1, 100000, 50, EXPONENTIAL, "Number of obje
HISTOGRAM_BOOLEAN(CYCLE_COLLECTOR_NEED_GC, "Needed garbage collection before cycle collection.")
HISTOGRAM(CYCLE_COLLECTOR_TIME_BETWEEN, 1, 120, 50, EXPONENTIAL, "Time spent in between cycle collections (seconds)")
HISTOGRAM(FORGET_SKIPPABLE_MAX, 1, 10000, 50, EXPONENTIAL, "Max time spent on one forget skippable (ms)")
/**
* GC telemetry
*/