diff options
author | wolfbeast <mcwerewolf@wolfbeast.com> | 2019-02-12 01:25:43 +0100 |
---|---|---|
committer | wolfbeast <mcwerewolf@wolfbeast.com> | 2019-02-12 01:25:43 +0100 |
commit | 263d8500ce68b279a2d055c322f0ab3eab634989 (patch) | |
tree | 9f258c3d6186346dc4435427ce6565ec376efd5d /toolkit/components/perfmonitoring/nsPerformanceStats.cpp | |
parent | b06821da15b7ab2573cd18aea8048b94266e3a97 (diff) | |
parent | 8beab28bfff78ccefc8677c5bdddd6f60c544600 (diff) | |
download | UXP-263d8500ce68b279a2d055c322f0ab3eab634989.tar UXP-263d8500ce68b279a2d055c322f0ab3eab634989.tar.gz UXP-263d8500ce68b279a2d055c322f0ab3eab634989.tar.lz UXP-263d8500ce68b279a2d055c322f0ab3eab634989.tar.xz UXP-263d8500ce68b279a2d055c322f0ab3eab634989.zip |
Merge branch 'master' into Pale_Moon-release
# Conflicts:
# application/palemoon/components/preferences/advanced.xul
# application/palemoon/config/version.txt
# modules/libpref/init/all.js
Diffstat (limited to 'toolkit/components/perfmonitoring/nsPerformanceStats.cpp')
-rw-r--r-- | toolkit/components/perfmonitoring/nsPerformanceStats.cpp | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/toolkit/components/perfmonitoring/nsPerformanceStats.cpp b/toolkit/components/perfmonitoring/nsPerformanceStats.cpp index 33aeaf7c2..59d84ced1 100644 --- a/toolkit/components/perfmonitoring/nsPerformanceStats.cpp +++ b/toolkit/components/perfmonitoring/nsPerformanceStats.cpp @@ -662,9 +662,6 @@ nsPerformanceStatsService::nsPerformanceStatsService() nsPerformanceGroup::GroupScope::RUNTIME // scope )) , mIsHandlingUserInput(false) - , mProcessStayed(0) - , mProcessMoved(0) - , mProcessUpdateCounter(0) , mIsMonitoringPerCompartment(false) , mJankAlertThreshold(mozilla::MaxValue<uint64_t>::value) // By default, no alerts , mJankAlertBufferingDelay(1000 /* ms */) @@ -953,13 +950,6 @@ nsPerformanceStatsService::SetJankAlertBufferingDelay(uint32_t value) { return NS_OK; } -nsresult -nsPerformanceStatsService::UpdateTelemetry() -{ - /* STUB */ - return NS_OK; -} - /* static */ nsIPerformanceStats* nsPerformanceStatsService::GetStatsForGroup(const js::PerformanceGroup* group) @@ -992,12 +982,6 @@ nsPerformanceStatsService::GetSnapshot(JSContext* cx, nsIPerformanceSnapshot * * } } - js::GetPerfMonitoringTestCpuRescheduling(cx, &mProcessStayed, &mProcessMoved); - - if (++mProcessUpdateCounter % 10 == 0) { - mozilla::Unused << UpdateTelemetry(); - } - snapshot.forget(aSnapshot); return NS_OK; @@ -1098,6 +1082,9 @@ nsPerformanceStatsService::GetPerformanceGroups(JSContext* cx, return false; } + // Returning a vector that is too large would cause allocations all over the + // place in the JS engine. We want to be sure that all data is stored inline. + MOZ_ASSERT(out.length() <= out.sMaxInlineStorage); return true; } @@ -1326,8 +1313,12 @@ nsPerformanceStatsService::GetResources(uint64_t* userTime, void nsPerformanceStatsService::NotifyJankObservers(const mozilla::Vector<uint64_t>& aPreviousJankLevels) { - GroupVector alerts; - mPendingAlerts.swap(alerts); + + // The move operation is generally constant time, unless + // `mPendingAlerts.length()` is very small, in which case it's fast anyway. + GroupVector alerts(Move(mPendingAlerts)); + mPendingAlerts = GroupVector(); // Reconstruct after `Move`. + if (!mPendingAlertsCollector) { // We are shutting down. return; |