<div dir="ltr">I just tried with both Xcode 8.1 beta 2 and Xcode 8.0, and 8.1b2 seems maybe 15s faster (to build our main huge target): 7m28s compared to 7m43s. It&#39;s some improvement, but I&#39;m not exactly sure what kind of improvement was expected.<div><br></div><div>Is there any profiling/tracing you all would recommend to help find problem areas? I don&#39;t mind building from Swift master, using someone&#39;s preferred profiling tools, etc. I&#39;m not really sure where to start.<br><div><br></div><div>Ben</div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Oct 5, 2016 at 1:05 PM, Ben Asher <span dir="ltr">&lt;<a href="mailto:benasher44@gmail.com" target="_blank">benasher44@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Apologies for not starting off with system info: macOS Sierra (10.12.0), Xcode 8.0 (from the App Store).<div><br></div><div>I&#39;ll try with Xcode 8.1 beta this afternoon and report back. Ill also open a ticket for improving -debug-time-function-bodies if I can confirm anything.</div><div><br></div><div>Thanks!</div><div><br></div><div>Ben</div></div><div class="gmail_extra"><div><div class="h5"><br><div class="gmail_quote">On Wed, Oct 5, 2016 at 1:00 PM, Mark Lacey <span dir="ltr">&lt;<a href="mailto:mark.lacey@apple.com" target="_blank">mark.lacey@apple.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><br><div><span><blockquote type="cite"><div>On Oct 4, 2016, at 2:38 PM, Ben Asher via swift-dev &lt;<a href="mailto:swift-dev@swift.org" target="_blank">swift-dev@swift.org</a>&gt; wrote:</div><br class="m_2386091958347163566m_1098956126652972838Apple-interchange-newline"><div><div dir="ltr">Hello! I work with a large project (~900 .swift files and more .m files). We have a nightly job that compiles the app and calls out function bodies (using -debug-time-function-bo<wbr>dies) that are slower than 100ms to compile. Since upgrading to Swift 3, the number of trouble function bodies has one from &gt; 150 to &lt; 20, so we&#39;re really happy about that! The only issue though is that build time overall increased by ~1 min (amount of time to build all targets before automatically merging to master in our integration build).</div></div></blockquote><div><br></div></span>Is this using a particular release of Xcode (8.0 or an 8.1 beta?), or with one of the toolchain builds from <a href="http://swift.org" target="_blank">swift.org</a>?</div><div><br></div><div>Xcode 8.1 beta 2 includes some type checker performance improvements which might have an impact here.</div><div><span><br><blockquote type="cite"><div><div dir="ltr"><div><br></div><div>To dig into this further, we&#39;ve started a new nightly job that builds the app using the -debug-time-compilation flag, and using that we&#39;ve found that some files take as long as 2-3 seconds to compile. But, there&#39;s no targeted output to help us get this down via the -debug-time-function-bodies flag (i.e. no function bodies that we can refactor to get compile times much faster).</div></div></div></blockquote><div><br></div></span><div>One thing to look out for here is that I believe there are some cases where -debug-time-function-bodies isn’t reporting type checking time. From my (potentially faulty) recollection, things like let bindings with literals or closures on the right hand side do not show up in the -debug-time-function-bodies output, and depending on the specifics of the expression these can sometimes take a long time to type check. When these appear within the body of another type declaration they can end up getting type checked multiple times during a full project build, and that time can add up.</div><div><br></div><div>I don’t believe there is a bug open for improving -debug-time-function-bodies to help diagnose this, but opening a bug would be appreciated if you can confirm that this is the case, and of course patches to fix it are definitely welcome as well.</div><span class="m_2386091958347163566HOEnZb"><font color="#888888"><div><br></div><div>Mark</div><br></font></span><blockquote type="cite"><div><span><div dir="ltr"><div> We can see that most of the time is spent in &quot;Type checking / Semantic analysis&quot; for these problem files, but we don&#39;t currently have any way of knowing what that means. It feels like we&#39;ve exhausted the available options at this point (unless there are other flags I&#39;m missing) in terms of existing actionable debugging/profiling/reporting, so now our question is this: what kind of reports would Swift maintainers be interested in seeing in terms of output from profiling tools, etc. to help debug/diagnose these slow compile issues? We&#39;re willing to devote time to tooling to help generate such reports and file bugs.</div><div><br></div><div>Thanks!<br clear="all"><div><br></div><div class="m_2386091958347163566m_1098956126652972838gmail_signature"><div dir="ltr">Ben</div></div>
</div></div></span><span>
______________________________<wbr>_________________<br>swift-dev mailing list<br><a href="mailto:swift-dev@swift.org" target="_blank">swift-dev@swift.org</a><br><a href="https://lists.swift.org/mailman/listinfo/swift-dev" target="_blank">https://lists.swift.org/mailma<wbr>n/listinfo/swift-dev</a><br></span></div></blockquote></div><br></div></blockquote></div><br><br clear="all"><div><br></div></div></div><span class="HOEnZb"><font color="#888888">-- <br><div class="m_2386091958347163566gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">-Ben</div></div>
</font></span></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">-Ben</div></div>
</div>