On 11/21/13, 7:06 AM, Michael Shal wrote:
From: "Gregory Szorc" <g...@mozilla.com>
Unified sources have probably saved sufficient CPU cycles across all of
automation to more than offset having a non-unified build-only job. I'll
defer to the Platform Team (Ehsan?) to request that from Release
Engineering.

How many CPU cycles would we have saved across all of automation if we didn't 
clobber all the time in the first place?

Indeed. We'll get there. I was somewhat disappointed an in-tree Tup backend didn't make the cut of Q4 build system goals.

But keep in mind that tests - not builds - represent the largest financial cost to our automation. Obviously fast builds are important because every other job depends on them completing and they are the common component all developers need. But if shaving costs is your goal, we should be heavily investing in testing improvements.

[1] contains the cost breakdown. Keep in mind that "build" jobs do a lot more than just build. Here's a broken down Linux64 m-c build job from a few hours ago:

* 80:00 total
*  3:20 chroot population (bug 851294 tracks improving)
*  2:58 repo updating (bug 851270 tracks improving)
* 35:22 building/compiling
*  5:57 symbols
*  1:02 package tests
*  1:20 packaging
*  4:11 uploading
*  2:00 misc other packaging
* 20:44 make check

I'd say ~45 minutes (56%) wall time is actual "build." The rest is tests or automation overhead. This already makes build faster than browser chrome mochitests. And considering the build system is one of a few pieces of automation that attempts to use all CPU cores, it's one of the most efficient pieces of automation. (AFAIK JS JIT tests and xpcshell tests are the only other pieces of automation that scale out to N cores reasonably effectively.) Need moar concurrency.

[1] http://oduinn.com/blog/2013/11/20/the-financial-cost-of-a-checkin-part-1/

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

Reply via email to