[webkit-dev] Growing tired of long build times? Check out this awesome new way to speed up your build... soon (HINT: It's not buying a new computer)

Maciej Stachowiak mjs at apple.com
Tue Aug 29 19:00:07 PDT 2017



> On Aug 29, 2017, at 6:40 PM, Sam Weinig <weinig at apple.com> wrote:
> 
> 
> 
>> On Aug 29, 2017, at 6:36 PM, Maciej Stachowiak <mjs at apple.com <mailto:mjs at apple.com>> wrote:
>> 
>> 
>> 
>>> On Aug 29, 2017, at 5:54 PM, Sam Weinig <weinig at apple.com <mailto:weinig at apple.com>> wrote:
>>> 
>>> 
>>> 
>>>> On Aug 29, 2017, at 12:46 PM, Geoffrey Garen <ggaren at apple.com <mailto:ggaren at apple.com>> wrote:
>>>> 
>>>>> This isn’t the scenario I find myself in most often.  A much more common scenario is working on a change; touch one or two files, and then compile and test/debug.  Rinse and repeat.
>>>> 
>>>> We’ve already tested this case. The worst case slowdown, if you touch a small file that's in the same bundle as the biggest .cpp file in the project, is 6s => 7s (20%).
>>>> 
>>>> Geoff
>>> 
>>> I see larger than ~6 second build times with this scenario, not measure scientifically, but I would approximate it more around 20 - 30 seconds. Do you expect the 20% to scale linearly?
>> 
>> Is that just compile time or total build time including build system overhead? I found that for single-file builds the compile step is less than half the total time.
> 
> 
> I’m not entirely sure. I usually don’t pay attention to what is happening during the compile.  From doing one right now, it seems to be about 50-50 for one small file.

I've tried to reverse engineer this by comparing compile time after touching one file to time after touching two and it seems to support ~50%. Given that, I'd estimate the impact to a 20-30 second total time at around 1-2 seconds. With more files, your probability of a net win increases. If two files in the same AllInOne get changed, you save enough to make up for four singletons slowing down.

I agree that the single-file incremental time is already not great but I think adopting cmake+ninja as the normal way to build is the only easy way to resolve that. Maybe we could even consider making the Xcode project invoke the cmake/ninja build instead of doing the Xcode thing at some point, to maximally help people who build in the GUI.

 - Maciej

> 
> - Sam
> 
>> 
>> 
>>> 
>>> 
>>> In a completely other direction, what does this mean for use of Xcode? Can we still build from Xcode? Debug?
>>> 
>>> - Sam
>>> 
>>> _______________________________________________
>>> webkit-dev mailing list
>>> webkit-dev at lists.webkit.org <mailto:webkit-dev at lists.webkit.org>
>>> https://lists.webkit.org/mailman/listinfo/webkit-dev <https://lists.webkit.org/mailman/listinfo/webkit-dev>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20170829/f512d9c9/attachment.html>


More information about the webkit-dev mailing list