On Fri, Jun 11, 2010 at 3:03 AM, Maciej Stachowiak <[email protected]> wrote:

>
> On Jun 10, 2010, at 4:22 PM, Eric Seidel wrote:
>
> > Example.  Use of a mutable member for AnimationController:
> > https://trac.webkit.org/browser/trunk/WebCore/page/Frame.h#L346
> >
> > Causes us to pull in AnimationController.h:
> > https://trac.webkit.org/browser/trunk/WebCore/page/Frame.h#L31
> >
> > Which pulls in additional headers of its own.
>
> I think what requires including the additional headers is the fact that
> it's a data member of class type instead of a pointer; the mutable
> declaration is unrelated.
>
> >
> > Frame.h is included by lots and lots of cpp files, most of which never
> > need AnimationController.h.  Thus all of those intermediate files
> > (preprocessor output, assembler output, .o file, etc.) are larger than
> > necessary, causing longer builds.  Also any time someone edits an
> > AnimationController.h (or a dependent .h) we end up re-building every
> > file which includes Frame.h (hundreds of files).
>
> Making the helper classes of Frame into separately allocated objects could
> certainly help compile time. It used to be they were all held in a separate
> FramePrivateData class. I'm not sure when that changed. I don't know of any
> considerations besides performance and memory use that would favor the
> current approach. Testing would show whether it actually matters. It might
> also be worthwhile to find the checkin that removed the separate private
> data struct for Frame, to see if that was done for a particular reason.
>
> Regards,
> Maciej
>
>
We moved away from the private approach in
http://trac.webkit.org/changeset/40024 for a PLT speedup (I apparently did
not mention a percentage gain weinig--).  It lately has also allowed us to
inline access to some of those properties for another PLT speedup.

-Sam
_______________________________________________
webkit-dev mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

Reply via email to