Hi Dima, On Wed, Dec 22, 2010 at 11:21 PM, Dima Tisnek <dim...@gmail.com> wrote: > --- Comment #4 from Boris Zbarsky (:bz) <bzbar...@mit.edu> 2010-12-22 > 13:43:23 PST --- > So what I see this page do, in horizontal mode, is create 17 canvases each of > which is width="816" height="3587". That means that each of them has a > backing > store of 816*3587*4 = 11,707,968 bytes. So that's about 200MB of memory usage > right there. > > I have no idea why they feel a need for 17 huge canvases, but if they want > them, that's how much memory they'll take...
That looks very similar to an issue with PyPy's own GC, in which ctypes.create_string_buffer() returns objects which tend to be GC'ed late. That's because the string buffer object in ctypes appears (to PyPy's GC) to be just a small object, even though it actually references a potentially large piece of raw memory. Similarly, my vague guess about the above is that the 17*11MB of memory are hold by 17 small objects which firefox's GC think don't need to be collected particularly aggressively. A bientôt, Armin. _______________________________________________ pypy-dev@codespeak.net http://codespeak.net/mailman/listinfo/pypy-dev