I understand the concern about >1 process. We have some handling in
place for that using the pageloader extension (http://hg.mozilla.org/
build/pageloader/file/4dec1e56c677/chrome/pageloader.js), but it might
not be a perfect scenario.
On Oct 3, 3:43 pm, William Lachance <wlacha...@mozilla.com> wrote:
> 1. What's the most basic test case we could implement that would be
> useful for performance testing?
I assume you're talking about framerate analysis? If so, the main
uses of eideticker there are
- Extract more rigorous results from performance benchmarks. They
usually do their own framerate estimation, and often don't do a good
job of it. Some benchmarks (*cough* Microsoft's) make up silly
metrics other than fps, which are just distracting. So one thing that
would be interesting is comparing the results of benchmarks' own fps
results and what eideticker says. Another useful thing would be
setting the silly-metric benchmarks back on firm footing. A few
interesting ones are
o JSGameBench
o GUIMark2/3 HTML5
o Asteroids HTML5 Canvas 2D
o Psychedelic Browsing
o Hardware Acceleration Stress Test
o FishIE
o WebGL FishIE
(Note that when testing under eideticker, you'd need to remove the fps
estimation and reporting since they can affect the eideticker
results.)
- Regression testing on interesting benchmarks. We don't do that
right now, and that's a bad thing. It would be extremely interesting
to see how the scores on some of the benchmarks above have changed
over time, and where we could have used eideticker to catch
regressions. Or even better, if we're in the middle of a performance
regression, report it! :) That would be a huge find.
- Comparing against other browsers on rigorous grounds. That's a lot
to bite off for a first release though, I would postpone.
> 2. What other test cases are we pretty sure that we want to implement
> for the first release of this thing? From the eideticker document, I
> gathered that we wanted to measure: frame rate, frame splitting,
> checkerboarding, lag, and behaviour of the application while a page is
> being loaded from the network. Do we have a good idea what sorts of test
> cases would be good for measuring these sorts of things, or is that
> something we're going to have to iteratively develop as we go along? If
> the latter, maybe I should frame these user stories more in terms of the
> high-level things we want to measure, leaving the details of the exact
> test cases to a more detailed function spec (and/or implementation).
>
I would go for one or both of the page-load analyses described on the
wiki. We *do* have problems with extra reflowing and repainting on
android. It would be really cool to show that off with a heat map and/
or histogram. Then developers can start attacking bugs and verifying
that they're fixed, and tuning various knobs to see how the results
change.
Of all the things you listed, checkerboarding would be the most
valuable to implement because we can't measure it atm, but it's also
very hard to do rigorously. I wouldn't wait on that for the first
release. The test harness needs to have fine control of panning the
page, and that's not easy to do well.
For load analysis, I would just start with popular, complicated pages:
your nytimes, cnns, tom's hardwares, endgadgets, those sorts of
pages. The talos pageset would be interesting too. We'll definitely
iteratively develop sets of tests, and I'm sure lots of people will
have ideas for new things they'd like to measure. We'll likely want a
benchmark suite like talos', and also a set of simple regression
tests. That is, when we find problems on large complicated pages, we
can distill those problems into small tests and add them to a
regression suite. When do all this stuff, we definitely want to rope
in platform folks.
In general, I would focus more on the aspect of releasing a tool that
gives us new measurement capabilities instead of particular analyses
and tests. We of course want to show examples where we're gathering
data that other tools can't, but I expect analyses and tests to evolve
quite a bit as people think of new ways to use the new capabilities.
Cheers,
Chris