[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