On Monday, March 4, 2013 5:15:56 AM UTC-8, Jim Mathies wrote:
> For metrofx we’ve been working on getting omtc and apzc running in the 
> browser. One of the things we need to be able to do is run performance tests 
> that tell us whether or not the work we’re doing is having a positive effect 
> on perf. We currently don’t have automated tests up and running for metrofx 
> and talos is even farther off.
> 
> So to work around this I’ve been putting together some basic perf tests I can 
> use to measure performance using the mochitest framework. I’m wondering if 
> this might be a useful answer to our perf tests problems long term. 

I think this is an incredibly interesting proposal, and I'd love to see 
something like it go forward. Detailed reactions below.

> Putting together talos tests is a real pain. You have to write a new test 
> using the talos framework (which is a separate repo from mc), test the test 
> to be sure it’s working, file rel eng bugs on getting it integrated into 
> talos test runs, populated in graph server, and tested via staging to be sure 
> everything is working right. Overall the overhead here seems way too high.

Yup. And that's a big problem. Not only does this make your life harder, it 
makes people not do as much performance testing as they otherwise might. The JS 
team has had the experience that adding a new way of creating correctness tests 
incredibly easy (with *zero* overhead in the common case) really helped get 
more tests written and used. So I think it would be great to make it a lot 
easier to write perf tests.

> Maybe we should consider changing this system so devs can write performance 
> tests that suit their needs that are integrated into our main repo? Basically:
> 
> 1) rework graphs server to be open ended so that it can accept data from test 
> runs within our normal test frameworks.

IIUC, something like this is a key requirement: letting any perf test feed into 
the reporting system. People have pointed out that the Talos tests run on 
selected machines, so the perf tests should probably run on them as well, 
rather than on the correctness test machines. But that's only a small change to 
the basic idea, right?

> 2) develop of test module that can be included in tests that allows test 
> writers to post performance data to graph server.

Does that mean a mochitest module? This part seems optional, although certainly 
useful. Some tests will require non-mochitest frameworks.

I believe jmaher did some work to get in-browser standard JS benchmarks running 
automatically and reporting to graph-server. I'm curious how that would fit in 
with this idea--would the test module help at all, or could there be some other 
kind of more general module maybe, so that even things like standard benchmarks 
can be self-serve?

> 3) come up with a good way to manage the life cycle of active perf tests so 
> graph server doesn’t become polluted.

:-) How about getting an owner optionally listed for new tests, and then tests 
will be removed if no one is looking at them (according to web server logs) and 
there is no owner of record or the owner doesn't say the tests are still needed?

> 4) port existing talos tests over to the mochitest framework.
> 
> 5) drop talos.

This seems like it's in the line of "fix Talos". I'm not sure if this 
particular 4+5 is the right way to go, but the idea has some merit.

To the extent that people don't pay attention to Talos, it seems we really 
don't need to do anything with it. If people are paying attention to and taking 
care of performance in their area, then we're covered. To take the example I 
happen to know best, the JS team uses AWFY to track JS performance on standard 
benchmarks and additional tests they've decided are useful. So Talos is not 
needed to track JS performance. Having all the features of the new graph server 
does sound pretty cool, though.

It appears that there a few areas that are only covered by Talos for now, 
though. I think in that category we have warm startup time via Ts, and basic 
layout performance via Tp. I'm not sure about memory, because we do seem to 
detect increases via Talos, but we also have AWSY, and I don't know whether 
AWSY obviates Talos memory measurements or not.

For that kind of thing, I'm thinking maybe we should go with the same "teams 
take care of their own perf tests" idea. Performance is a natural owner for Ts. 
I'm not entirely sure about Tp, but it's probably layout or DOM. Then those 
teams could decide if they wanted to switch from Talos to a different 
framework. If everything's working properly, if the difficulty of reproducing 
Talos tests locally caused enough problems to warrant it, the owning teams 
would notice and switch.

Dave
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to