[ 
https://issues.apache.org/jira/browse/MESOS-1582?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15828645#comment-15828645
 ] 

Alex Clemmer commented on MESOS-1582:
-------------------------------------

I'd like to try to resurrect this issue and see what the appetite is for 
addressing it.

To my estimation, this build times issue is pretty close to being unbearable on 
Windows, where we don't really have (free) tools like `ccache` to help us 
address even the symptoms of the problem. I have worked with 100k+ LOC projects 
that compiled in < 30seconds, and based on this experience, I can say that I 
expect that successfully driving down build times would greatly improve the dev 
efficiency of the people working on these code paths. Obviously, we'd also 
expect such an improvement to also improve the dev efficiency of the project as 
a whole.

The question, I think is: at what cost?

I spent some time looking at where the build is getting hung up, and I think 
this work would be split up largely into two big tasks:

1. Driving down the cost of compiling individual object files. Others have 
pointed this out, and my benchmarking indicates that this is true, particularly 
around test files. It's not clear how much mileage there is to get out of this, 
we will have to use an include-what-you-use tool to see how bad this is.
2. Driving down the cost of end-to-end builds. This is largely a problem of 
dependency structure. There is the obvious case of Stout and Libprocess, which 
touch pretty much everything, and can trigger essentially a complete rebuild. 
But there is also the issue that the Agent codebase is largely monolithic; if 
it could be broken out and better-modularized, I suspect we could make real 
progress to avoiding substantial rebuilds of the Agent codebase.

I suspect that an ideal solution to this problem will trigger quite a lot of 
changes to the Agent codebase, and might even include turning Stout into a .cpp 
based (rather than header-only) library. So before we get too far down the 
rabbit hole, I want to make sure that people (1) agree this is worth doing, and 
(2) are ok with the potential changes that will go into this.

> Improve build time.
> -------------------
>
>                 Key: MESOS-1582
>                 URL: https://issues.apache.org/jira/browse/MESOS-1582
>             Project: Mesos
>          Issue Type: Epic
>          Components: build
>            Reporter: Benjamin Hindman
>              Labels: microsoft
>
> The build takes a ridiculously long time unless you have a large, parallel 
> machine. This is a combination of many factors, all of which we'd like to 
> discuss and track here.
> I'd also love to actually track build times so we can get an appreciation of 
> the improvements. Please leave a comment below with your build times!



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to