[jira] [Commented] (MESOS-1582) Improve build time.

2017-06-23 Thread James Peach (JIRA)

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

James Peach commented on MESOS-1582:


Also, we should make the obvious changes to remove internal implementation 
details from widely included headers. For example, 
[https://reviews.apache.org/r/59952/|https://reviews.apache.org/r/59952/] which 
removes the need to rebuild almost the whole project when the internal 
`FetcherProcess` is touched.

> 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, tech-debt
>
> 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.4.14#64029)


[jira] [Commented] (MESOS-1582) Improve build time.

2017-01-19 Thread Alex Clemmer (JIRA)

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

Alex Clemmer commented on MESOS-1582:
-

Fortunately, [~vinodkone], it happens to be the case that this is already 
roadmap-adjacent for [~kaysoky] and I. It would be natural to tackle this when 
we also tackle the "break libmesos up into many binaries" issue: 
https://issues.apache.org/jira/browse/MESOS-3542

I think the next step is to write up a little design doc about the plan.

> 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, tech-debt
>
> 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)


[jira] [Commented] (MESOS-1582) Improve build time.

2017-01-19 Thread Vinod Kone (JIRA)

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

Vinod Kone commented on MESOS-1582:
---

[~hausdorff] I'm huge +1 to fixing this. 

Unfortunately, I don't have cycles to shepherd this myself, but I'm hoping we 
can find one from our ever growing committer pool.

> 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, tech-debt
>
> 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)


[jira] [Commented] (MESOS-1582) Improve build time.

2017-01-18 Thread Alex Clemmer (JIRA)

[ 
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)


[jira] [Commented] (MESOS-1582) Improve build time.

2017-01-18 Thread Alex Clemmer (JIRA)

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

Alex Clemmer commented on MESOS-1582:
-

I'd like 

> 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)


[jira] [Commented] (MESOS-1582) Improve build time.

2015-10-25 Thread James Peach (JIRA)

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

James Peach commented on MESOS-1582:


I spent some more time trying to see whether there was a specific source if 
build slowness. http://fpaste.org/283530/14457915/ is my result for 
{{./src/docker/docker.cpp}}. It looks to me like a death-by-a-thousand-cuts 
situation, where the incremental cost of unnecessary templates and header-file 
implementations adds up slowly. It didn't seem to me that in this case there 
were any easy wins, though it is easy for me to believe that including 
{{master/master.hpp}} is expensive.

Using -ftime-report, clang spends most of it's time (64%) in "Clang front-end 
timer", and I think that gcc is spending it's time in template instantiation 
and codegen:

{code}
phase parsing   :   3.00 (23%) usr   1.40 (85%) sys   4.87 (33%) wall  
571872 kB (39%) ggc
phase lang. deferred:   3.23 (25%) usr   0.04 ( 2%) sys   3.26 (22%) wall  
398303 kB (27%) ggc
phase opt and generate  :   5.49 (43%) usr   0.19 (12%) sys   5.69 (38%) wall  
446259 kB (31%) ggc
template instantiation  :   3.80 (30%) usr   0.09 ( 5%) sys   3.78 (25%) wall  
506551 kB (35%) gcc
{code}

> 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
>
> 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)


[jira] [Commented] (MESOS-1582) Improve build time.

2015-10-25 Thread haosdent (JIRA)

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

haosdent commented on MESOS-1582:
-

I found most time are spent in #include files. For example, #include 
"tests/mesos.hpp" need 3 seconds,  #include "master/master.hpp" also nearly 3 
seconds. I would write a script to generate a list contains the include time 
for every header file.

> 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
>
> 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)


[jira] [Commented] (MESOS-1582) Improve build time.

2015-10-24 Thread haosdent (JIRA)

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

haosdent commented on MESOS-1582:
-

Add the missing libprocess build time for every object: 
http://fpaste.org/283318/

> 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
>
> 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)


[jira] [Commented] (MESOS-1582) Improve build time.

2015-10-15 Thread James Peach (JIRA)

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

James Peach commented on MESOS-1582:


Here's a quick hack to generate compilation timings:
{code}
diff --git a/src/Makefile.am b/src/Makefile.am
index 96ce73b..fd3389b 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -56,6 +56,11 @@ endif

 PROTOCFLAGS = -I$(top_srcdir)/include -I$(srcdir)

+TIME = /usr/bin/time
+ECHO = /bin/echo
+am__v_CXX_time = $(ECHO) -n "  CXX  " $@ && $(TIME) 
+am__v_lt_time = --silent
+
 # Initialize variables here so we can use += operator everywhere else.
 lib_LTLIBRARIES =
 noinst_LTLIBRARIES =
{code}

> 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
>
> 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)


[jira] [Commented] (MESOS-1582) Improve build time.

2015-10-15 Thread haosdent (JIRA)

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

haosdent commented on MESOS-1582:
-

Seems build the test objects spend a lot of time.

> 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
>
> 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)


[jira] [Commented] (MESOS-1582) Improve build time.

2015-10-15 Thread James Peach (JIRA)

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

James Peach commented on MESOS-1582:


Here's the build times w/ clang on OS X with {{-g -O0}}: 
http://fpaste.org/279627/92656414/

> 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
>
> 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)


[jira] [Commented] (MESOS-1582) Improve build time.

2015-10-13 Thread James Peach (JIRA)

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

James Peach commented on MESOS-1582:


Here's my plan ... add build support for generating a file containing 
wall-clock build time for each file. Taking the longest compilation times, use 
{{-ftime-report}} with clang and gcc to figure out where the time is being 
spent. Rinse and repeat.

> 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
>
> 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)


[jira] [Commented] (MESOS-1582) Improve build time.

2015-10-13 Thread James Peach (JIRA)

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

James Peach commented on MESOS-1582:


One of the worst offenders is the test suite. I experimented a bit with mock 
[recomendations|https://github.com/google/googletest/blob/master/googlemock/docs/CookBook.md#making-the-compilation-faster]
 but did not measure any improvement.

I'd be happy to take a crack at improving this provided there was a shepherd.

> 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
>
> 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)


[jira] [Commented] (MESOS-1582) Improve build time.

2014-07-14 Thread Timothy St. Clair (JIRA)

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

Timothy St. Clair commented on MESOS-1582:
--

IMHO subsuming stout into libprocess and converting .hpp -> .cpp would go a 
long way.
Right now stout doesn't really live alone, but requires dependencies that exist 
under libprocess/3rdparty.

> 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
>
> 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.2#6252)


[jira] [Commented] (MESOS-1582) Improve build time.

2014-07-14 Thread Benjamin Hindman (JIRA)

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

Benjamin Hindman commented on MESOS-1582:
-

Some initial suggestions that we can turn into their own JIRA issues (some of 
which already exist, so we can just include them within this epic):

* An "include what you use" campaign that strips headers that are not used, 
possibly even using the include-what-you-use clang tool.
* Move implementations from .hpp to .cpp.
* Separate large .cpp as necessary (increase parallelism).
* Introduce more forward declarations in place of headers.
* Document use and speedup of ccache.

> 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
>
> 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.



--
This message was sent by Atlassian JIRA
(v6.2#6252)