Commit Graph

25 Commits

Author SHA1 Message Date
Gijs Kruitbosch
65da082651 Bug 1309946 - remove all traces of add-on performance monitoring, r=Yoric
This removes all the code for add-on performance watching from the
perfmonitoring component. This should mean that for add-on
compartments, we no longer trigger jank or CPOW monitoring in the JS
engine. This should result in minor performance improvements. As a
result, about:performance no longer reports on add-on performance
(but still reports on web page performance).

It also removes the AddonWatchers.jsm module and the related Nightly-
only UI (disabled in the parent commit) and strings. This UI wasn't
ready for release, there wasn't sufficient data it was creating
value for users, and there was some evidence that it didn't always
correctly identify the cause of performance issues, thus potentially
leading to user confusion or annoyance. Removing it therefore seemed
the right thing to do.

MozReview-Commit-ID: LsRwuaUtq6L
2017-03-29 11:03:47 +01:00
David Teller
1cc4670406 Bug 1342714 - Reducing allocations in AutoStopwatch;r=froydnj,jandem
This patch fixes two related issues.

1. The AutoStopwatch uses a stack-allocated `mozilla::Vector` to
communicate with its callback during each compartment switch. This
vector was designed to allow its contents to be stack-allocated but
they turned out to be accidentally heap-allocated.


2. During each tick, the stopwatch fills a vector
`recentGroups_`. This vector always started with minimal capacity and
had to grow repeatedly as groups were added, causing repeated
reallocations. This patch preallocates `recentGroups_` to have the
same capacity as the previous tick. We expect that this should
eventually reach a stable size that closely matches the actual needs
of the process.

MozReview-Commit-ID: A7e3HNdSuML
2017-03-24 22:25:03 +01:00
Jan de Mooij
bd0f1c9018 Bug 1292892 part 1 - Stop using JSRuntime outside SpiderMonkey. r=bz,terrence,fitzgen,kanru 2016-08-11 14:39:22 +02:00
Jon Coppeard
08c0ae42b1 Bug 1280407 - Use SystemAllocPolicy rather that the default with mozilla::Vector in the JS engine r=sfink r=fitzgen r=jandem 2016-06-18 10:46:13 +01:00
Sebastian Hengst
2aab1c454d Backed out changeset afc3c6a5f93a (bug 1280407) for mass Spidermonkey failures. r=backout 2016-06-18 14:50:38 +02:00
Jon Coppeard
09a84a1160 Bug 1280407 - Use SystemAllocPolicy rather that the default with mozilla::Vector in the JS engine r=sfink r=fitzgen r=jandem 2016-06-18 10:46:13 +01:00
Sebastian Hengst
315d975726 Backed out changeset a58b9ab5dff0 (bug 1280407) for errors in testThreadingThread.cpp in SM(nu). r=backout 2016-06-18 12:53:01 +02:00
Jon Coppeard
a8cac86cfc Bug 1280407 - Use SystemAllocPolicy rather that the default with mozilla::Vector in the JS engine r=sfink r=fitzgen r=jandem 2016-06-18 10:46:13 +01:00
David Rajchenbach-Teller
fc7e340620 Bug 1261702 - Make nsPerformanceStatsService::Dispose() idempotent,r=froydnj
Although I haven't been able to pinpoint why, it looks like
nsPerformanceStatsService::Dispose() may be called twice, which in
turn causes crashes. This patch makes sure that calling the method
twice is idempotent.

Also, just in case this was due to a typo in
AddObserver/RemoveObserver, this patch replaces the literal strings
used in both with constants.

MozReview-Commit-ID: 8fXO20r5xvO
2016-06-07 10:45:44 +02:00
Wes Kocher
537416f46f Backed out changeset 66e0240f8c06 (bug 1261702) for mass assertion failures 2016-06-06 11:35:25 -07:00
David Rajchenbach-Teller
0ab8fede40 Bug 1261702 - Make nsPerformanceStatsService::Dispose() idempotent,r=froydnj
Although I haven't been able to pinpoint why, it looks like
nsPerformanceStatsService::Dispose() may be called twice, which in
turn causes crashes. This patch makes sure that calling the method
twice is idempotent.

Also, just in case this was due to a typo in
AddObserver/RemoveObserver, this patch replaces the literal strings
used in both with constants.

MozReview-Commit-ID: 8fXO20r5xvO
2016-05-30 12:24:50 +02:00
David Rajchenbach-Teller
6ddd95efcc Bug 1219144 - Using the nsRefreshDriver's jank indication for performance monitoring;f?froydnj r=froydnj
This patch (currently WIP) alters the way we determine whether jank is user-visible or not.

Instead of measuring the total time spent doing JS, we now use an
indicator provided by the vsync driver: how long it takes to deliver
the signal from the vsync timer to the main thread. This lets us find
out more accurately if there is user-visible jank. In the future, this
will also let us add an observer to find out whether the process
itself is janky, regardless of JS.
2016-01-14 15:07:18 +01:00
David Rajchenbach-Teller
5bfb6c3c1c Bug 1219144 - Performance alerts are now labelled with isJankVisible;r=avih,froydnj
To decrease the number of apparent false positives, we classify jank
alerts as visible or invisible. We use the following heuristic:
- if the process is currently animating something, any jank alert is visible;
- if the process has just handled a user input, any jank alert is visible;
- if some user input is handled during the current iteration, any jank alert is visible;
- otherwise, jank alerts are not visible.
2016-01-12 10:45:22 +01:00
David Rajchenbach-Teller
1a948e69b9 Bug 1186491 - An API for watching slow performance alerts (xpcom-level);r=froydnj
This patch introduces a new API to the nsPerformanceStatsService to register observers for slow performance. This API has several advantages:
- as it doesn't require polling, it also doesn't need to wake up the parent process every 15 seconds for the AddonWatcher;
- as it doesn't require polling, it doesn't need to wake up the child processes every time we wish to obtain data on slow performance;
- as it provides immediate data on performance alerts, it makes it possible to get rid of the complex and expensive post-processing performed by JS to merge data from all processes and attempt to extract performance alerts.

The old API is still available.
2015-11-24 13:37:32 +01:00
David Rajchenbach-Teller
3d37bc1b53 Bug 1186491 - Splitting nsIPerformanceStats in two;r=froydnj 2015-10-23 10:58:40 +02:00
David Rajchenbach-Teller
7b8179a1fc Bug 1217218 - Consolidate shutdown of nsPerformanceStatsService. r=froydnj 2015-10-22 21:01:47 +02:00
David Rajchenbach-Teller
8d8035d838 Bug 1208747 - Move most of Stopwatch-related code to XPCOM-land (XPCOM-level + XPConnect-level);r=froydnj 2015-10-02 23:44:23 +02:00
Carsten "Tomcat" Book
5319c04bcc Backed out changeset 33afbc6c4997 (bug 1208747) 2015-10-21 11:39:22 +02:00
David Rajchenbach-Teller
f1cc78b023 Bug 1208747 - Move most of Stopwatch-related code to XPCOM-land (XPCOM-level + XPConnect-level);r=froydnj 2015-10-02 23:44:23 +02:00
David Rajchenbach-Teller
67603e8af8 Bug 1199603 - Don't wait for shutdown to update nsPerformanceStats Telemetry. r=Mossop 2015-08-28 12:14:01 +02:00
David Rajchenbach-Teller
14b1c812e5 Bug 1181175 - Telemetry for finding out how often our process is rescheduled to another CPU. r=jandem, r=bsmedberg 2015-07-29 19:01:05 +02:00
Ryan VanderMeulen
7dbb7dc565 Backed out changesets db4294fb662d and de9ae2ccb73b (bug 1181175) for Android test_compartments.js failures.
CLOSED TREE
2015-08-10 15:07:27 -04:00
David Rajchenbach-Teller
0979349348 Bug 1181175 - Telemetry for finding out how often our process is rescheduled to another CPU. r=jandem, r=bsmedberg 2015-07-29 19:01:05 +02:00
David Rajchenbach-Teller
7f158ab368 Bug 1157870 - Performance Groups should have a unique ID (high-level). r=mossop 2015-05-18 16:40:34 +02:00
David Rajchenbach-Teller
8a206c0d34 Bug 1152759 - Regroup Performance Monitoring modules/components;r=yoric 2015-04-14 17:10:04 +02:00