<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Sep 2, 2014 at 11:39 AM, Rafael Espíndola <span dir="ltr"><<a href="mailto:rafael.espindola@gmail.com" target="_blank" class="cremed">rafael.espindola@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On 2 September 2014 11:34, Samuel Benzaquen <<a href="mailto:sbenza@google.com" class="cremed">sbenza@google.com</a>> wrote:<br>

> I did try splitting it up. It doesn't scale much.<br>
> Each part contains duplicate template instantiations, so splitting in N pieces will not make each one 1/Nth of the total.<br>
> Tried 1-5 pieces. These are the results:<br>
> # parts | # symbols | total #<br>
>         |  per part | symbols<br>
>     1   |    ~19k   |  ~19k<br>
>     2   |    ~13k   |  ~26k<br>
>     3   |    ~10k   |  ~30k<br>
>     4   |    ~9k    |  ~36k<br>
>     5   |    ~8k    |  ~40k<br>
><br>
> Note that I did not try to group similar matchers together (which would be a maintenance nightmare), so each part ends up instantiating most of the common templates for a lot (most?) of the node types.<br>
<br>
</div></div>What is the compile time impact? In particular, how slow is the<br>
slowest one after the split compared with the original?<br></blockquote><div><br></div><div>In the 5-way split the compile time was about 60% (of the non-split version) for each file. So if you run them in parallel you could do it in 40% less time, but you end up doing 3x the work.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Cheers,<br>
Rafael<br>
</blockquote></div><br></div></div>