Closed Bug 750507 Opened 12 years ago Closed 12 years ago

Need a talos jank test

Categories

(Firefox for Android Graveyard :: General, defect)

All
Android
defect
Not set
normal

Tracking

(firefox15 fixed)

RESOLVED FIXED
Firefox 15
Tracking Status
firefox15 --- fixed

People

(Reporter: kats, Assigned: kats)

Details

Attachments

(1 file)

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.
Attached patch PatchSplinter Review
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
Target Milestone: --- → Firefox 15
https://hg.mozilla.org/mozilla-central/rev/6ce39c695793
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: