[webkit-dev] Build system update

David Levin levin at google.com
Wed Mar 23 13:33:45 PDT 2011

On Wed, Mar 23, 2011 at 12:17 PM, Adam Barth <abarth at webkit.org> wrote:
> $ time git svn rebase
> [... update my working copy from changes during lunch (four revisions) ...]
> real    1m10.316s
> user    0m8.194s
> sys     0m16.400s
> $ time ./Tools/Scripts/generate-project-files
> real    0m4.339s
> user    0m3.888s
> sys     0m0.269s
> which is about 6.1% overhead on an almost trivial update.  We can also
> reduce this overhead to zero in many cases by detecting that we don't
> need to re-generate the project files if the inputs to the generation
> process haven't changed.
> It looks like you are using a slow mechanism for syncing. :)

TLDR version: 8% overhead for updating 191 revisions. *49% overhead for
trivial sync* (3 revisions) -- in addition to the added complexity (when I
sync or switch branches in git).

Here's my results for updating 191 revisions (81605 through 81796).

$ time git fetch && time git svn rebase

fetch, svn rebase times
real 0m21.071s, 0m36.195s
user 0m2.271s, 0m3.205s
sys 0m0.497s, 0m9.428s

total 57 seconds for a nontrivial update.

$ time ./Tools/Scripts/generate-project-files

real 0m4.642s
user 0m4.243s
sys 0m0.322s

An 8% overhead on a non-trivial sync.

For a trivial update of 3 revisions:
real 0m3.490s, 0m6.017s
user 0m0.932s, 0m2.266s
sys 0m0.184s, 0m2.824s

For a total of 9.5 seconds.

The generate project files step remained the same, so this adds a 49%
overhead for a trivial sync.

It also adds time (and complications) whenever I switch branches in git.


PS For chromium, my experience is

$ time gclient runhooks --force
real 0m42.459s
user 0m29.236s
sys 0m2.543s

I don't know enough about chromium build system and gyp to know why it is an
order of magnitude slower, but this overhead is noticeable and annoying
there. I love the idea of a one project file system, but I have concerns
about project file generation on sync becoming the norm in WebKit. fwiw, I
checked how many gyp files were in chromium and it appeared within 20%.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20110323/1039dc4a/attachment.html>

More information about the webkit-dev mailing list