Re: [webkit-dev] WebCore Build Times

2010-06-08 Thread Peter Kasting
On Tue, Jun 8, 2010 at 3:17 PM, Eric Seidel e...@webkit.org wrote:

 Has anyone spent any time trying to reduce the number of includes in
 WebCore?  I know we have:

 https://trac.webkit.org/browser/trunk/WebKitTools/Scripts/find-extra-includes

 But I feel like we still have way too many unnecessary includes.  I
 failed to find any tools for reducing build times or includes with my
 brief Google searching.  But perhaps others have looked into this
 problem for WebKit or other projects?


I know someone once suggested that the build would be sped up if the
#includes had longer paths (something like what happens in the Chromium
tree) so that the toolchain didn't have to spend as much time scanning the
(large) number of different directories on the #include path list.  However,
I don't know how true this is, and plus, converting all the files to use
this method would be a huge change (presumably done via a script).  I
imagine removing unnecessary #includes, as you suggest above, would provide
a much bigger benefit.

PK
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] WebCore Build Times

2010-06-08 Thread Dumitru Daniliuc
would it be worth replacing #include wtf/*Ptr.h with #include
wtf/Forward.h in all header files?


On Tue, Jun 8, 2010 at 3:17 PM, Eric Seidel e...@webkit.org wrote:

 Has anyone spent any time trying to reduce the number of includes in
 WebCore?  I know we have:

 https://trac.webkit.org/browser/trunk/WebKitTools/Scripts/find-extra-includes

 But I feel like we still have way too many unnecessary includes.  I
 failed to find any tools for reducing build times or includes with my
 brief Google searching.  But perhaps others have looked into this
 problem for WebKit or other projects?

 On my Intel Core 2 Duo MBP a full build takes over 1 hour.  5 years
 ago, on my g4 laptop a full build took around 40m.  :(  We seem to be
 slowly moving in the wrong direction.

 -eric
 ___
 webkit-dev mailing list
 webkit-dev@lists.webkit.org
 http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] WebCore Build Times

2010-06-08 Thread David Kilzer
On Jun 8, 2010, at 3:17 PM, Eric Seidel e...@webkit.org wrote:

 On my Intel Core 2 Duo MBP a full build takes over 1 hour.  5 years
 ago, on my g4 laptop a full build took around 40m.  :(  We seem to be
 slowly moving in the wrong direction.

Was that before or after SVG was enabled in the engine?  :)  In general, I 
think the amount of code in WebCore has increased since 2005, which probably 
has more of an affect than unused headers.

Having said that, I thought it would be useful to write a script that would 
remove individual headers on a file-by-file basis and recompile WebKit to find 
unused header candidates.  I haven't had time to write such a script, though.

Dave

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] WebCore Build Times

2010-06-08 Thread Eric Seidel
I think were I to try attacking this, I would write a script to
generate a list of includes, and the number of cpp files which include
them.

Then I would work from the most-included end of that list, trying to
reduce the number of files include each include.

-eric

On Tue, Jun 8, 2010 at 4:04 PM, David Kilzer ddkil...@webkit.org wrote:
 On Jun 8, 2010, at 3:17 PM, Eric Seidel e...@webkit.org wrote:

 On my Intel Core 2 Duo MBP a full build takes over 1 hour.  5 years
 ago, on my g4 laptop a full build took around 40m.  :(  We seem to be
 slowly moving in the wrong direction.

 Was that before or after SVG was enabled in the engine?  :)  In general, I 
 think the amount of code in WebCore has increased since 2005, which probably 
 has more of an affect than unused headers.

 Having said that, I thought it would be useful to write a script that would 
 remove individual headers on a file-by-file basis and recompile WebKit to 
 find unused header candidates.  I haven't had time to write such a script, 
 though.

 Dave


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] WebCore Build Times

2010-06-08 Thread Dirk Pranke
On Tue, Jun 8, 2010 at 3:21 PM, Peter Kasting pkast...@google.com wrote:

 On Tue, Jun 8, 2010 at 3:17 PM, Eric Seidel e...@webkit.org wrote:

 Has anyone spent any time trying to reduce the number of includes in
 WebCore?  I know we have:
 https://trac.webkit.org/browser/trunk/WebKitTools/Scripts/find-extra-includes

 But I feel like we still have way too many unnecessary includes.  I
 failed to find any tools for reducing build times or includes with my
 brief Google searching.  But perhaps others have looked into this
 problem for WebKit or other projects?

 I know someone once suggested that the build would be sped up if the 
 #includes had longer paths (something like what happens in the Chromium tree) 
 so that the toolchain didn't have to spend as much time scanning the (large) 
 number of different directories on the #include path list.  However, I don't 
 know how true this is, and plus, converting all the files to use this method 
 would be a huge change (presumably done via a script).  I imagine removing 
 unnecessary #includes, as you suggest above, would provide a much bigger 
 benefit.

In a previous job, I spent a lot of time optimizing build times and
reducing the number of include directories scanned made an enormous
difference. However, that was C, not C++, and so the compilation and
link steps were much faster than the preprocessing step (compared to
C++, at least).

I would still expect the file system scanning to be much slower than
the actual preprocessing, so fixing include paths would probably still
make a bigger difference than reducing unnecessary includes, but I'm
not sure how much difference either contributes to the overall
numbers.

-- Dirk
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] WebCore Build Times

2010-06-08 Thread Benbuck Nason
Hi,

For what it's worth I created all-in-one source files where they
didn't already exist (css, dom, editing, history, etc.), and was able to
drop my full rebuild time to a couple of minutes.

-Ben

On 6/8/2010 3:17 PM, Eric Seidel wrote:
 Has anyone spent any time trying to reduce the number of includes in
 WebCore?  I know we have:
 https://trac.webkit.org/browser/trunk/WebKitTools/Scripts/find-extra-includes
 
 But I feel like we still have way too many unnecessary includes.  I
 failed to find any tools for reducing build times or includes with my
 brief Google searching.  But perhaps others have looked into this
 problem for WebKit or other projects?
 
 On my Intel Core 2 Duo MBP a full build takes over 1 hour.  5 years
 ago, on my g4 laptop a full build took around 40m.  :(  We seem to be
 slowly moving in the wrong direction.
 
 -eric
 ___
 webkit-dev mailing list
 webkit-dev@lists.webkit.org
 http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
 
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] WebCore Build Times

2010-06-08 Thread Alexey Proskuryakov


08.06.2010, в 15:21, Peter Kasting написал(а):

I know someone once suggested that the build would be sped up if the  
#includes had longer paths (something like what happens in the  
Chromium tree) so that the toolchain didn't have to spend as much  
time scanning the (large) number of different directories on the  
#include path list.



I believe Xcode keeps an in-memory map for file name to path mapping.  
This doesn't help other build systems, but the fact that build-webkit  
isn't blazing fast on Mac indicates that something else might be a  
culprit.


- WBR, Alexey Proskuryakov

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev