Need a talos jank test

RESOLVED FIXED in Firefox 15

Status

()

Firefox for Android
General
RESOLVED FIXED
5 years ago
5 years ago

People

(Reporter: kats, Assigned: kats)

Tracking

unspecified
Firefox 15
All
Android
Points:
---

Firefox Tracking Flags

(firefox15 fixed)

Details

Attachments

(1 attachment)

We want a talos test to measure jank. Sort of like testPan (aka robopan) does now, but somewhat enhanced so we weight missed frames by the amount we missed the frame by, rather than just counting the number of missed frames.

:jmaher, should we just change the calculation used in testPan, or is it better to write a new test for this?
I am fine just changing testPan.  From the description of this issue it seems like we are not getting all we want from testPan and adjusting it would give us what we want.
I put together a first patch and ran it on try a bunch of times, but it's giving very variable results, just like the new tcheckerboard and tcheckerboard2 numbers. See https://tbpl.mozilla.org/?tree=Try&rev=868d2f723523 for the patch and numbers. I'm going to try dividing by number of frames to hopefully smooth out the numbers a bit. It should still be a measure of jank but with less variability because it won't depend on how long the test runs for.
Created attachment 620288 [details] [diff] [review]
Patch

The patch with division by number of frames didn't reduce variability much, I'm not sure why. The results for that can be found at https://tbpl.mozilla.org/?tree=Try&rev=fc96c85bee42

This is just the first patch I tried, where we sum the squares of the missed frame times in milliseconds.
Attachment #620288 - Flags: review?(jmuizelaar)
Comment on attachment 620288 [details] [diff] [review]
Patch

Review of attachment 620288 [details] [diff] [review]:
-----------------------------------------------------------------

Might be worth adding a note about why we're choosing this new metric over the old one.

::: build/mobile/robocop/FennecNativeDriver.java.in
@@ +235,4 @@
>              for (int i = 1; i < frames.size(); i++) {
> +                long frameTime = frames.get(i) - frames.get(i - 1);
> +                if (frameTime > FRAME_TIME_THRESHOLD) {
> +                    badness += Math.pow(frameTime - FRAME_TIME_THRESHOLD, 2);

I would square this by hand instead of using pow.

@@ +245,5 @@
>              log(LogLevel.ERROR, e);
>          }
>  
> +        // higher values are worse, and the test failing is the worst!
> +        return 12345678;

MAX_INT?
Attachment #620288 - Flags: review?(jmuizelaar) → review+
Landed with review comments addressed.

https://hg.mozilla.org/integration/mozilla-inbound/rev/6ce39c695793
status-firefox15: --- → fixed
Target Milestone: --- → Firefox 15
https://hg.mozilla.org/mozilla-central/rev/6ce39c695793
Status: ASSIGNED → RESOLVED
Last Resolved: 5 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.