summaryrefslogtreecommitdiffstats
path: root/toolkit/components/perfmonitoring/nsPerformanceStats.cpp
diff options
context:
space:
mode:
authorwolfbeast <mcwerewolf@wolfbeast.com>2019-02-12 01:25:43 +0100
committerwolfbeast <mcwerewolf@wolfbeast.com>2019-02-12 01:25:43 +0100
commit263d8500ce68b279a2d055c322f0ab3eab634989 (patch)
tree9f258c3d6186346dc4435427ce6565ec376efd5d /toolkit/components/perfmonitoring/nsPerformanceStats.cpp
parentb06821da15b7ab2573cd18aea8048b94266e3a97 (diff)
parent8beab28bfff78ccefc8677c5bdddd6f60c544600 (diff)
downloadUXP-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.cpp27
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;