On Thu, Oct 15, 2009 at 11:11 AM, Jens Alfke <s...@google.com> wrote:

>
> I spent some time this morning looking at Chrome's memory usage (on OS
> X 10.5.8) while viewing flickr.com. First I simply started at my photo-
> stream page and hit Reload over and over. Next I tried going through
> all of my photos one by one. I used the RPRVT column in 'top', and the
> 'heap' and 'mmap' tools to examine memory usage.
>
> Reloading:
> • Memory usage keeps going up. The renderer starts at about 13MB
> resident, and goes up a little over 1MB after each reload. I could
> easily get it up above 50MB. There is some GC going on during the
> first few reloads, but not after that. Both the malloc and v8 heaps
> are growing, primarily malloc.
> • Forcing full GCs brings usage down somewhat, but you have to do it
> at least five or six times.
> • Switching to another tab in the same window is the only way to get
> heap usage down significantly (by calling V8's IdleNotification) and
> even then it takes over a minute of occasional idle-time GC to have a
> significant effect.
>

The suspicion is that V8 is holding handles active that are keeping the old
DOM alive after refresh, so perhaps we need a way to tell V8 to actively
attempt to purge its handles to C++.  This would be called after a refresh
or a navigation.

- James


>
> Browsing multiple pages:
> • Similar memory growth, as above.
> • Even hiding the tab doesn't bring memory usage down as much. The
> 'vmmap' tool shows that there's a lot of space allocated to
> CoreGraphics backing stores, much more than in the single-page case
> (like 13MB vs 1MB.) I'm not sure if this is for the images on the
> pages, or snapshots of the pages themselves for the back/forward
> cache. Safari 4 on Mac has similar behavior.
>
> Conclusions:
> • As already known, V8 isn't collecting enough objects that have
> handles to big native object trees.
> • We should call V8::IdleNotification in situations other than a
> hidden tab. A long-lived tab might go for quite a while without being
> hidden in this way: the user might activate another app, hide Chrome
> itself, or just use multiple windows instead of tabs.
> • There may be an opportunity in WebCore to toss out image backing
> stores more aggressively.
>
> —Jens
> >
>

--~--~---------~--~----~------------~-------~--~----~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
    http://groups.google.com/group/chromium-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to