While this analysis is interesting, it doesn't measure the impact of the unified builds project directly, so I decided that now that a good chunk of code is being compiled in unified mode we should get some specific numbers on the improvements.

What I did was I took inbound as of ab70db6b27c8, and did a clobber build twice. The first time I manually converted all UNIFIED_SOURCES variables to SOURCES using [1], and the second time I reverted that change to build a pristine inbound. Both builds were done with a warm cache of all of the source tree (I manually put everything into the cache before each build.)

And here are the results:

Before:
22:12.74 Overall system resources - Wall time: 1332s; CPU: 92%; Read bytes: 50761728; Write bytes: 7229292544; Read time: 39540; Write time: 5736192
real    22m13.648s
user    69m52.462s
sys    5m57.270s

After:
16:07.89 Overall system resources - Wall time: 967s; CPU: 89%; Read bytes: 10317824; Write bytes: 6860136448; Read time: 12604; Write time: 4981152
real    16m8.469s
user    47m39.219s
sys    4m1.699s


This means that unified builds so far have made our builds around 27% faster in terms of wall clock, and around 32% faster in terms of CPU time.

These measurements were done on Linux on a 4-core machine.


Last but not least, thanks to everybody who is helping with this project!

Cheers,
Ehsan


[1] $ find . -name moz.build | xargs grep -w UNIFIED_SOURCES | awk -F: '{print $1}' | sort | uniq | xargs sed -i 's/UNIFIED_SOURCES/SOURCES/'

On 2013-11-19 2:15 AM, Gregory Szorc wrote:
Do builds feel like they've gotten faster in the last few weeks^hours?
It's because they have.

When I did my MacBook Pro comparison [1] with a changeset from Oct 28,
build times on my 2013 2.6 GHz MacBook Pro were as follows:

Wall  11:13  (673)
User  69:55 (4195)
Sys    6:04  (364)
Total 75:59 (4559)

I just built the tip of m-c (e4b59fdbc9c2) and times on that same
machine are now:

Wall   9:23  (563)
User  57:38 (3458)
Sys    4:58  (298)
Total 62:36 (3756)

That's a 17.6% drop in CPU time required to build the tree! If the build
system were able to deliver 100% CPU utilization, my machine would be
able to build the tree in ~7:50 wall time. Not too shabby!

I can say with high confidence that unified sources are mostly
responsible for the CPU efficiency gains. When I built m-c earlier today
just after Australis landed, total CPU time was at 66:28. In between, 5
unified sources bugs landed and ~4 minutes total CPU time was shaved off.

Project unified sources: making builds insanely faster since yesterday.

I can't wait to see what tomorrow brings.

[1]
http://gregoryszorc.com/blog/2013/11/05/macbook-pro-firefox-build-times-comparison/
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


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

Reply via email to