Global Metrics
path: .metrics.halstead.volume
old: 531.7739459608056
new: 1000.1752304397662
path: .metrics.halstead.length
old: 98.0
new: 173.0
path: .metrics.halstead.purity_ratio
old: 2.185007005465589
new: 1.5480255754579928
path: .metrics.halstead.n2
old: 39.0
new: 37.0
path: .metrics.halstead.estimated_program_length
old: 214.1306865356277
new: 267.8084245542328
path: .metrics.halstead.vocabulary
old: 43.0
new: 55.0
path: .metrics.halstead.level
old: 0.4642857142857143
new: 0.057902973395931145
path: .metrics.halstead.n1
old: 4.0
new: 18.0
path: .metrics.halstead.N2
old: 42.0
new: 71.0
path: .metrics.halstead.N1
old: 56.0
new: 102.0
path: .metrics.halstead.time
old: 63.63107045684853
new: 959.6275859624784
path: .metrics.halstead.bugs
old: 0.03648994719832063
new: 0.22273864052608475
path: .metrics.halstead.difficulty
old: 2.1538461538461537
new: 17.27027027027027
path: .metrics.halstead.effort
old: 1145.3592682232736
new: 17273.29654732461
path: .metrics.nexits.sum
old: 0.0
new: 2.0
path: .metrics.nexits.average
old: null
new: 1.0
path: .metrics.nargs.average
old: null
new: 0.5
path: .metrics.nargs.sum
old: 0.0
new: 1.0
path: .metrics.mi.mi_sei
old: 77.26369407076155
new: 51.607549012614285
path: .metrics.mi.mi_visual_studio
old: 44.37407792551243
new: 36.611376603241744
path: .metrics.mi.mi_original
old: 75.87967325262626
new: 62.605453991543385
path: .metrics.cognitive.sum
old: 0.0
new: 5.0
path: .metrics.cognitive.average
old: null
new: 2.5
path: .metrics.nom.functions
old: 0.0
new: 2.0
path: .metrics.nom.total
old: 0.0
new: 2.0
path: .metrics.loc.cloc
old: 21.0
new: 20.0
path: .metrics.loc.lloc
old: 0.0
new: 12.0
path: .metrics.loc.blank
old: 0.0
new: 12.0
path: .metrics.loc.ploc
old: 27.0
new: 43.0
path: .metrics.loc.sloc
old: 46.0
new: 75.0
path: .metrics.cyclomatic.sum
old: 2.0
new: 11.0
path: .metrics.cyclomatic.average
old: 1.0
new: 2.75
Spaces Data
Minimal test - lines (31, 75)
path: .spaces[0].metrics.loc.sloc
old: 30.0
new: 45.0
path: .spaces[0].metrics.loc.ploc
old: 24.0
new: 32.0
path: .spaces[0].metrics.loc.blank
old: 0.0
new: 9.0
path: .spaces[0].metrics.loc.lloc
old: 0.0
new: 12.0
path: .spaces[0].metrics.loc.cloc
old: 9.0
new: 4.0
path: .spaces[0].metrics.halstead.n1
old: 4.0
new: 18.0
path: .spaces[0].metrics.halstead.vocabulary
old: 42.0
new: 43.0
path: .spaces[0].metrics.halstead.n2
old: 38.0
new: 25.0
path: .spaces[0].metrics.halstead.N2
old: 40.0
new: 57.0
path: .spaces[0].metrics.halstead.length
old: 96.0
new: 150.0
path: .spaces[0].metrics.halstead.estimated_program_length
old: 207.42124551085624
new: 191.15505477032977
path: .spaces[0].metrics.halstead.N1
old: 56.0
new: 93.0
path: .spaces[0].metrics.halstead.purity_ratio
old: 2.160637974071419
new: 1.2743670318021982
path: .spaces[0].metrics.halstead.time
old: 60.54531843120011
new: 927.8912730540586
path: .spaces[0].metrics.halstead.difficulty
old: 2.1052631578947367
new: 20.52
path: .spaces[0].metrics.halstead.effort
old: 1089.815731761602
new: 16702.042914973055
path: .spaces[0].metrics.halstead.level
old: 0.475
new: 0.04873294346978558
path: .spaces[0].metrics.halstead.bugs
old: 0.03530049487631704
new: 0.21780030091422195
path: .spaces[0].metrics.halstead.volume
old: 517.662472586761
new: 813.9397132053147
path: .spaces[0].metrics.nargs.sum
old: 0.0
new: 1.0
path: .spaces[0].metrics.nargs.average
old: null
new: 0.5
path: .spaces[0].metrics.mi.mi_visual_studio
old: 48.63983658934969
new: 42.21184731067653
path: .spaces[0].metrics.mi.mi_original
old: 83.17412056778798
new: 72.18225890125687
path: .spaces[0].metrics.mi.mi_sei
old: 81.91126850177275
new: 51.735938204539195
path: .spaces[0].metrics.nexits.average
old: null
new: 1.0
path: .spaces[0].metrics.nexits.sum
old: 0.0
new: 2.0
path: .spaces[0].metrics.cognitive.sum
old: 0.0
new: 5.0
path: .spaces[0].metrics.cognitive.average
old: null
new: 2.5
path: .spaces[0].metrics.cyclomatic.sum
old: 1.0
new: 10.0
path: .spaces[0].metrics.cyclomatic.average
old: 1.0
new: 3.3333333333333335
path: .spaces[0].metrics.nom.total
old: 0.0
new: 2.0
path: .spaces[0].metrics.nom.functions
old: 0.0
new: 2.0
Code
namespace mozilla {
NS_IMETHODIMP
MainThreadIdlePeriod::GetIdlePeriodHint(TimeStamp* aIdleDeadline) {
MOZ_ASSERT(NS_IsMainThread());
MOZ_ASSERT(aIdleDeadline);
TimeStamp now = TimeStamp::Now();
TimeStamp currentGuess =
now + TimeDuration::FromMilliseconds(kLongIdlePeriodMS);
currentGuess = nsRefreshDriver::GetIdleDeadlineHint(currentGuess);
if (XRE_IsContentProcess()) {
currentGuess = gfx::VRManagerChild::GetIdleDeadlineHint(currentGuess);
}
currentGuess = NS_GetTimerDeadlineHintOnCurrentThread(currentGuess,
kMaxTimerThreadBound);
// If the idle period is too small, then just return a null time
// to indicate we are busy. Otherwise return the actual deadline.
TimeDuration minIdlePeriod =
TimeDuration::FromMilliseconds(StaticPrefs::idle_period_min());
bool busySoon = currentGuess.IsNull() ||
(now >= (currentGuess - minIdlePeriod)) ||
currentGuess < mLastIdleDeadline;
// During page load use higher minimum idle period.
if (!busySoon && XRE_IsContentProcess() &&
mozilla::dom::Document::HasRecentlyStartedForegroundLoads()) {
TimeDuration minIdlePeriod = TimeDuration::FromMilliseconds(
StaticPrefs::idle_period_during_page_load_min());
busySoon = (now >= (currentGuess - minIdlePeriod));
}
if (!busySoon) {
*aIdleDeadline = mLastIdleDeadline = currentGuess;
}
return NS_OK;
}
/* static */
float MainThreadIdlePeriod::GetLongIdlePeriod() { return kLongIdlePeriodMS; }
} // namespace mozilla