Focussed a week on iOS tests and reduced our average run time from 35 minutes to ~10 minutes for UI tests (model is at ~5 minutes)
How did we do this?
1: Analyzing EarlGrey and finding spots where things could be accelerated. In this case we increased animation speed, but didn’t calculate in that faster timing in the resource tracking, so animations were blocking for the original time.
2: Separate tests so that each machine only tests one test target; previously we ran two targets one one machine in parallel. (Parallel tests were flaky in the early days)
3: Enabling test parallelization. This took a lot of smaller test fixes - all our timeout:5 code broke because parallel tests have unpredictable performance. We use a larger default timeout now to deal with variable load.
4: We’ve replaced our Mac minis with 1TB models (MacStadium has a promo currently) so we now got better machines for cheaper. With 1TB we could increase ccache space to get far more cache hits across different branches.
5 (and lastly). Spotlight (aka md_worker) went brrr on test machines so I added a new step in our Chef automated setup to disable it, seems that gave another 5% boost on total test times.
6 (almost forgot!) I had to fork ccache to make it work with -fmodules. github.com/ccache/ccache/…
tests go brrr
I tried to further accelerate things, but it seems iOS gets REALLY confused if you inject touches faster than 60Hz. So typing still has a bit of a delay.

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Peter Steinberger

Peter Steinberger Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @steipete

13 Oct
Don‘t we all love watching two hour long, incredibly well done, advertising shows 🤡
Is Siri good now? I gave up on it a few years ago.
Hm. Consensus seems that Siri still sucks. 🤷🏻‍♂️
Read 25 tweets
28 Jul
“Phil Schiller says the goal of the App Store was to treat everybody the same”

Riiiight. Some get these special entitlement exceptions, others don’t even get a reply when they ask. All animals are equal, but some animals are more equal than others. imore.com/phil-schiller-…
Panic’s com. apple.developer.security.privileged-file-operations
BBEdit’s com.apple.security.automation.apple-events
Microsoft’s com.apple.security.files.user-selected.executable
com.apple.developer.passkit.pass-presentation-suppression that we didn’t get
And that’s only the one I know on top of my head, there’s way more.
Read 4 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!