Magus (marcmagus) wrote,
Magus
marcmagus

  • Mood:

Chromium: Memory

So after my recent experiences with system-wide resource exhaustion thanks to Chromium, I've started paying a bit more attention. This thing gobbles up available system memory like there's no tomorrow. Ok, sure, no point it sitting around idle. Only it's not sitting around idle, because my OS dynamically uses available memory for cache.

Ok, sure, I've actually been somewhat sold on "1. Don't Optimize. 2. Optimize Later.", but seriously, what the hell is this thing doing with all this memory? Yes, the sandboxed multi-threaded model does mean a higher memory footprint, and I really appreciate that I can kill the thread for libflashplayer without bringing the whole browser down, considering that libflashplayer is a piece of junk that crashes on average twice a day (more if I'm actually spending any amount of time using Flash). But still:

  • Each extension gets its own thread. Cool. Why the hell is the minimum private memory footprint for an extension (Eye Dropper) over 7 MB? What the hell does it need 7MB for? (Note: actually using it makes it jump over 16MB, then fall down to 15MB.) For a color picker + eyedropper! Yes, yes, process overhead. 7+MB of process overhead?! And Chrome is supposed to work on phones?

  • The memory footprint for active tabs is comparably appalling. A process containing only the "new tab" page needs 10 MB. In fact, a process containing only a tab on a 73B file containing minimal HTML for a blank page with the title "Nothing" requires 14 MB! (6 MB for JavaScript?!)

    • A page which adds a link to that page is also 14 MB, but then having both pages open in the same process is almost 18 MB, so not only does each browser process have about 10 MB of overhead, but it takes about 4 MB just to have a blank page open, Changing the window size (and killing the thread and starting a new one) doesn't seem to change this significantly, so it doesn't even seem to be that it's allocating a bunch of memory for the display, unless it's doing so for some arbitrary viewport that's not the actual window size. (Actually, I haven't done the math closely enough, I guess it could be allocating exactly the size of my entire display here so I can resize/maximize quickly.

I guess that's probably what's going on. In order to give a snappier response, it's renders every page and keeps it in memory as a bitmap, but also does so as though it were fullscreened in case you change the window size? Which doesn't explain that extension overhead or what it's doing to keep the processor so busy even when I'm not doing much of anything.

I might even appreciate all that, if it worked to give me a responsive system. Except once I've been using it for a bit I'm not actually sure it does. And as mentioned previously, browsing Amazon gets pretty catastrophic. It should in theory be, say, swapping out memory for pages I haven't viewed recently, except it doesn't really seem to do that (until swap spontaneously decided to go from empty to full).

Not sure this is working...stay tuned...


Originally posted at http://marcmagus.dreamwidth.org/138615.html. (comment count unavailable comment[s]|comment there)
Tags: chromium, tools
Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 0 comments