[webkit-dev] Disk cache

Benjamin Poulain benjamin at webkit.org
Mon Nov 3 00:22:44 PST 2014

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?

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.


More information about the webkit-dev mailing list