On 5/7/14, 12:36 PM, Luc R. wrote:
Thanks Benjamin. Do I understand right that the MemoryPressureHandler is an additional mechanism to reduce memory on top of other things, but is not the root cause of memory increase at first place?
Yes, MemoryPressureHandler is one of our tools for managing memory, not the cause.

The way WebKit runs nowadays is: use as much memory as needed to improve the runtime performance (while being reasonable of course). When the system needs the memory back, MemoryPressureHandler clears the major caches and return the memory to the system.

It is a common pattern from OS X: if there is spare memory available, use if for runtime performance. When memory becomes scarce, the operating system reclaim memory from the processes that do not require high performance at this time.
An extra  information on memory pattern:
For the new code, amount of committed memory is actually less for about 2x on average (say 150M vs 300M per process), but private memory is higher say 100M vs 60M per process, as well as is the working set. The scenario is a continuous processing a URL list until process crashing. My interpretation that somehow processes burn more physical memory, instead of letting it page out to disk. Does it make sense?

This looks like a dramatic change. Are there any major changes in memory management in the last 2 years? Are there any sensitive settings which can be tuned up?
WebKit is an extremely active project, there are several hundred changes every day. Some subsystems have been entirely rewritten in the last two years. Without more information about which subsystem uses more memory, it is impossible for me to guess what is happening.

Regarding the settings, you should at least disable the page cache since it should be useless for your use case.

If you send the list of objects that are taking more memory, I may be able to give more information.

Benjamin

On Mon, May 5, 2014 at 6:38 PM, Benjamin Poulain <benja...@webkit.org <mailto:benja...@webkit.org>> wrote:

    On 5/5/14, 6:31 PM, Luc R. wrote:

        Question on memory usage.

        I am using WinCairo port, and I have recently updated the
        codebase from
        about 2 years old one. I am running an automation with multiple
        instances of WebKit running in parallel, and each instance is
        processing
        a list of URLs (until crashes, then it's restarted).

        I noticed that memory usage on the new codebase is about 60%
        higher! I
        don't see substantial differences in the output (which is
        pretty much
        outerHTML) and processing speed is about the same.

        Does anyone have ideas, which feature could have added such a
        significant increase of memory usage? I would be interested to
        look into
        details of how to reduce that back to normal.


    WebKit is becoming a lot better at using memory efficiently to
    improve the runtime performance. It could simply be better use of
    the ram.

    You should try to wiring the MemoryPressureHandler with your
    system, and see if that makes a difference.

    Benjamin
    _______________________________________________
    webkit-help mailing list
    webkit-help@lists.webkit.org <mailto:webkit-help@lists.webkit.org>
    https://lists.webkit.org/mailman/listinfo/webkit-help




--
-Luc

_______________________________________________
webkit-help mailing list
webkit-help@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-help

Reply via email to