[webkit-dev] Disk cache

Carlos Garcia Campos carlosgc at webkit.org
Mon Nov 3 11:12:49 PST 2014


El lun, 03-11-2014 a las 00:22 -0800, Benjamin Poulain escribió:
> On 11/2/14, 1:11 AM, Carlos Garcia Campos wrote:
> > El sáb, 01-11-2014 a las 20:43 +0200, Antti Koivisto escribió:
> >> On Sat, Nov 1, 2014 at 10:13 AM, Carlos Garcia Campos
> >> <carlosgc at webkit.org> wrote:
> >>          El vie, 31-10-2014 a las 19:02 +0200, Antti Koivisto escribió:
> >>          > Hello,
> >>          >
> >>          >
> >>          > I'm planning to add an experimental HTTP cache
> >>          implementation to
> >>          > WebKit (https://bugs.webkit.org/show_bug.cgi?id=30322).
> >>          
> >>          Great news!
> >>          
> >>          >  The main motivations are:
> >>          >
> >>          >
> >>          > - Improving performance by bringing the cache closer. For
> >>          example we
> >>          > can serialize WebKit response objects directly instead of
> >>          converting
> >>          > to/from platform types.
> >>          > - Making future innovation around caching easier. Closer
> >>          coordination
> >>          > between cache and WebKit opens new optimization
> >>          possibilities.
> >>          >
> >>          >
> >>          > The cache lives in the network process. Most of the code is
> >>          > cross-platform. The storage backend uses libdispatch IO
> >>          though it
> >>          > wouldn't be hard to add a generic posix one too.
> >>          
> >>          Why is it limited to the network process? wouldn't it be
> >>          possible to use
> >>          it also in the web process when shared secondary process model
> >>          is used?
> >>
> >>
> >> The cache ties to NetworkResourceLoader which lives in the network
> >> process. In principle it would be possible to integrate with the web
> >> process side resource loader too. However I don't want to support
> >> multiple configurations during development.
> >>
> >>
> >> It would be good if all WK2 ports would eventually switch to using the
> >> network process. The current multitude of configurations makes
> >> networking related code more confusing and less hackable than it needs
> >> to be.
> > The GTK+ port supports the network process, but it's only used when
> > multiple secondary process model is used. Some applications prefer the
> > single shared secondary process model, and even some of the browser
> > users change the default process model of epiphany to single web process
> > because it requires fewer resources. So, we could either integrate the
> > cache with the web process loader, or use the network process
> > unconditionally for all process models. I think for many simple
> > applications a single web process is the most efficient model, though.
> I believe it would be better to enable the network process for all 
> process models. Maintaining multiple configurations for marginal gains 
> is not sustainable, especially in the network stack.
> 
> You say a single Web Process is the most efficient model for some 
> applications. What is the impact of always enabling the network process on:
> -CPU load?
> -Memory load?
> -Overall performance?

I haven't measured, I was thinking mainly on the overhead of the IPC
traffic required for the network resources.

> Once we know where the problems are, we should work together at reducing 
> the impact. I suspect we can get the network process below 5% overhead.
> 
> Benjamin
> _______________________________________________
> webkit-dev mailing list
> webkit-dev at lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev




More information about the webkit-dev mailing list