Closed Bug 799519 Opened 12 years ago Closed 12 years ago

Reduce number of GC allocation kinds to save memory

Categories

(Firefox OS Graveyard :: General, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: billm, Assigned: n.nethercote)

References

Details

(Whiteboard: [MemShrink][slim:?])

Attachments

(1 file)

As described in bug 798491 comment 11. We'd need to try both options (turning off background alloc and always using 4 inline slots) and see how they affect memory usage and responsiveness.
BTW, here's the list of GC thing kinds, from js/src/gc/Heap.h: /* The GC allocation kinds. */ enum AllocKind { FINALIZE_OBJECT0, FINALIZE_OBJECT0_BACKGROUND, FINALIZE_OBJECT2, FINALIZE_OBJECT2_BACKGROUND, FINALIZE_OBJECT4, FINALIZE_OBJECT4_BACKGROUND, FINALIZE_OBJECT8, FINALIZE_OBJECT8_BACKGROUND, FINALIZE_OBJECT12, FINALIZE_OBJECT12_BACKGROUND, FINALIZE_OBJECT16, FINALIZE_OBJECT16_BACKGROUND, FINALIZE_OBJECT_LAST = FINALIZE_OBJECT16_BACKGROUND, FINALIZE_SCRIPT, FINALIZE_SHAPE, FINALIZE_BASE_SHAPE, FINALIZE_TYPE_OBJECT, #if JS_HAS_XML_SUPPORT FINALIZE_XML, #endif FINALIZE_SHORT_STRING, FINALIZE_STRING, FINALIZE_EXTERNAL_STRING, FINALIZE_IONCODE, FINALIZE_LAST = FINALIZE_IONCODE }; I think JS_HAS_XML_SUPPORT is off by default now, so that makes 20 kinds. Turning off the background finalization ones would save 6. Getting rid of 2, 8, 12 and 16 slot objects would save 4. billm, can you clarify the theoretical effects of both of these changes?
JS_HAS_XML_SUPPORT is on since E4X is just a dynamic pref (currently on in chrome, off in content). Good reason to turn of E4X on B2G...
Well, I don't know much more than I wrote in the original comment. Turning off background finalization: This will make GCs slower. And they'll get slower during a phase that is not incrementalized, so incremental GC won't help. We've seen demos on desktop where turning off background finalization in even one specific case caused two second pauses. That was with a big WebGL game, though. I doubt it would be nearly that dramatic in most cases. Always using 4 inline slots: This would have pretty predictable memory overhead. Objects with fewer than 4 slots would waste the extra ones. Objects with more than 4 would use malloced slots for the remaining ones. I don't think jemalloc stores any header words, so that wouldn't be much of a waste, I guess. In terms of performance, the JITs need an extra load to access the malloc slots.
> I don't think jemalloc stores any header words, so that wouldn't be much of a waste, I > guess. I'm not entirely sure what you mean, but here's how jemalloc handles metadata: * For "huge" allocations (1mb or larger) and "large" allocations (4kb or larger), we store metadata in a rbtree separate from the allocation. * For other allocations, we store metadata in a bitmap which appears at the beginning of the alloc's bin. Each bin is an integer number of pages and contains allocations of only one size class. In practice, this means that 2kb allocations are particularly inefficient, because we have a bin of 16kb (iirc), and we waste a full 2kb for the bin's header. In no case do we store a header directly in front of every allocation. HTH.
> * For other allocations, we store metadata in a bitmap which appears at the > beginning of the alloc's bin. Each bin is an integer number of pages and > contains allocations of only one size class. In practice, this means that > 2kb allocations are particularly inefficient, because we have a bin of 16kb > (iirc), and we waste a full 2kb for the bin's header. But we're only talking about cases where we have at most 16 slots. At 8 bytes per slot, that's at most 128 bytes. I think the jemalloc overhead for blocks of that size is negligible. So for objects with 5--16 slots there's negligible extra per-object space cost, just the time cost for the extra load to access the slots. Given that, it might be worth considering always using 0 inline slots instead of 4 inline slots (assuming that doesn't break things). Note that we currently have no data on which GC thing kinds are responsible for most of the wasted space in small compartments.
> Given that, it might be worth considering always > using 0 inline slots instead of 4 inline slots (assuming that doesn't break > things). I am interested in the result here. I predict a regression because we kill locality and every object allocation will result in an additional malloc call. > > Note that we currently have no data on which GC thing kinds are responsible > for most of the wasted space in small compartments. Yes please lets get data first. From my experience we don't allocate too many different allocation kinds. Note that we added background finalization because of limited devices. This was a huge win for my netbook with a single core.
This patch changes the measurement of gc-things so its grouped by kind. TL;DR: I think removing the object0* and object2* kinds would probably be a memory win for both desktop and B2G. (Until we can share arenas between compartments.) Beyond that, it seems doubtful. Here are the totals on a B2G linux64 desktop build, Main Process just after start-up: 25,912,816 B (100.0%) -- js-main-runtime ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ15,836,160 B (61.11%) -- compartments ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ10,461,184 B (40.37%) -- gc-heap ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ5,625,192 B (21.71%) -- used ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ1,453,568 B (05.61%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject4-background ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ1,323,760 B (05.11%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàshape ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ669,392 B (02.58%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàscript ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ591,040 B (02.28%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàshort-string ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ456,792 B (01.76%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàbase-shape ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ366,816 B (01.42%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject8-background ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ341,056 B (01.32%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàstring ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ112,128 B (00.43%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject2 ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ107,088 B (00.41%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàtype-object ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ64,224 B (00.25%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject2-background ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ36,768 B (00.14%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject8 ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ31,040 B (00.12%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject4 ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ27,360 B (00.11%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject0-background ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ13,600 B (00.05%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject16 ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ13,568 B (00.05%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject12-background ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ8,800 B (00.03%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject16-background ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ4,096 B (00.02%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject12 ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ3,456 B (00.01%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàexternal-string ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ640 B (00.00%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàxml ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ4,683,984 B (18.08%) -- unused ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ651,800 B (02.52%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàshape ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ385,896 B (01.49%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàbase-shape ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ383,808 B (01.48%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject2 ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ371,040 B (01.43%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject8-background ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ366,080 B (01.41%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàstring ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ356,800 B (01.38%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject4-background ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ314,016 B (01.21%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject0-background ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ306,400 B (01.18%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject16 ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ290,592 B (01.12%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject2-background ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ283,456 B (01.09%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject4 ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ279,984 B (01.08%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàtype-object ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ225,312 B (00.87%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject8 ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ217,120 B (00.84%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàscript ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ102,464 B (00.40%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàshort-string ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ61,824 B (00.24%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject12-background ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ43,200 B (00.17%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject16-background ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ24,992 B (00.10%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàexternal-string ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ15,360 B (00.06%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàxml ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ3,840 B (00.01%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject12 ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ152,008 B (00.59%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàarena-admin Some kinds are very wasteful, e.g. object0-background, object16, object2. Here's an example for a very small B2G compartment: ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ29,472 B (00.06%) -- compartment(null-principal) ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ20,480 B (00.04%) -- gc-heap ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ19,688 B (00.04%) -- unused ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ3,984 B (00.01%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject2 ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ3,984 B (00.01%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàtype-object ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ3,960 B (00.01%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàshape ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ3,920 B (00.01%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàbase-shape ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ3,840 B (00.01%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject16-background ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ448 B (00.00%) -- used ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ160 B (00.00%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject16-background ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ112 B (00.00%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàbase-shape ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ80 B (00.00%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàshape ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ48 B (00.00%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject2 ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ48 B (00.00%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàtype-object ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ344 B (00.00%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàarena-admin This makes the waste more obvious, but there's no clear path to victory -- at most we could merge the object2 and object16-background kinds. But then, not all the compartments are that small, so that's a bit misleading. Here's a slightly larger B2G compartment: ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ99,224 B (00.20%) -- compartment([System Principal], resource://gre/modules/FileUtils.jsm) ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ69,632 B (00.14%) -- gc-heap ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ45,640 B (00.09%) -- unused ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ5,568 B (00.01%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject8-background ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ4,816 B (00.01%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàbase-shape ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ4,640 B (00.01%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàshape ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ4,032 B (00.01%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàstring ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ3,968 B (00.01%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject0-background ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ3,968 B (00.01%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject4 ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ3,888 B (00.01%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject2-background ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ3,840 B (00.01%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject16 ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ3,360 B (00.01%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàtype-object ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ3,072 B (00.01%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject2 ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ2,760 B (00.01%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàscript ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ1,728 B (00.00%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject4-background ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ22,976 B (00.05%) -- used ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ7,480 B (00.02%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàshape ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ6,336 B (00.01%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject4-background ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ3,248 B (00.01%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàbase-shape ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ2,496 B (00.01%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject8-background ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ1,288 B (00.00%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàscript ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ960 B (00.00%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject2 ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ672 B (00.00%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàtype-object ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ160 B (00.00%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject16 ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ144 B (00.00%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject2-background ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ96 B (00.00%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject0-background ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ64 B (00.00%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject4 ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ32 B (00.00%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàstring ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ1,016 B (00.00%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàarena-admin Here are the totals after running MemBench on desktop: ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ464.38 MB (47.93%) -- gc-heap ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ352.66 MB (36.40%) -- used ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ94.30 MB (09.73%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject4-background ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ80.31 MB (08.29%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàshape ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ67.91 MB (07.01%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàscript ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ24.15 MB (02.49%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject8-background ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ19.54 MB (02.02%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàshort-string ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ18.74 MB (01.93%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàtype-object ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ18.17 MB (01.88%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàbase-shape ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ11.07 MB (01.14%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàstring ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ5.66 MB (00.58%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject2-background ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ4.05 MB (00.42%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject2 ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ2.85 MB (00.29%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject12-background ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ1.85 MB (00.19%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject16-background ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ1.78 MB (00.18%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàexternal-string ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ1.12 MB (00.12%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject4 ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ0.61 MB (00.06%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject0-background ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ0.36 MB (00.04%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject8 ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ0.15 MB (00.02%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject16 ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ0.02 MB (00.00%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàxml ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ0.00 MB (00.00%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject12 ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ0.00 MB (00.00%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàioncode ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ104.99 MB (10.84%) -- unused ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ15.07 MB (01.56%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject8-background ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ14.51 MB (01.50%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàshape ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ13.97 MB (01.44%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject4-background ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ7.78 MB (00.80%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject2-background ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ7.38 MB (00.76%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàstring ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ7.03 MB (00.73%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàshort-string ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ5.01 MB (00.52%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject2 ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ4.44 MB (00.46%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàbase-shape ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ4.39 MB (00.45%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject4 ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ3.98 MB (00.41%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject0-background ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ3.96 MB (00.41%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàtype-object ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ3.54 MB (00.37%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject16 ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ3.16 MB (00.33%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject8 ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ3.03 MB (00.31%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàscript ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ2.58 MB (00.27%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject16-background ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ2.35 MB (00.24%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàexternal-string ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ2.22 MB (00.23%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject12-background ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ0.57 MB (00.06%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàxml ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ0.03 MB (00.00%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàobject12 ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ0.00 MB (00.00%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàioncode ÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂ6.73 MB (00.69%) ÃÂâÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂàarena-admin Again, object0* and object2* cause more problems that they're worth.
Assignee: nobody → n.nethercote
whatever you are using to post to bugzilla still is not handling weird characters properly. ;)
(2nd attempt) This patch changes the measurement of gc-things so its grouped by kind. TL;DR: I think removing the object0* and object2* kinds would probably be a memory win for both desktop and B2G. (Until we can share arenas between compartments.) Beyond that, it seems doubtful. Here are the totals on a B2G linux64 desktop build, Main Process just after start-up: 25,912,816 B (100.0%) -- js-main-runtime ├──15,836,160 B (61.11%) -- compartments │ ├──10,461,184 B (40.37%) -- gc-heap │ │ ├───5,625,192 B (21.71%) -- used │ │ │ ├──1,453,568 B (05.61%) ── object4-background │ │ │ ├──1,323,760 B (05.11%) ── shape │ │ │ ├────669,392 B (02.58%) ── script │ │ │ ├────591,040 B (02.28%) ── short-string │ │ │ ├────456,792 B (01.76%) ── base-shape │ │ │ ├────366,816 B (01.42%) ── object8-background │ │ │ ├────341,056 B (01.32%) ── string │ │ │ ├────112,128 B (00.43%) ── object2 │ │ │ ├────107,088 B (00.41%) ── type-object │ │ │ ├─────64,224 B (00.25%) ── object2-background │ │ │ ├─────36,768 B (00.14%) ── object8 │ │ │ ├─────31,040 B (00.12%) ── object4 │ │ │ ├─────27,360 B (00.11%) ── object0-background │ │ │ ├─────13,600 B (00.05%) ── object16 │ │ │ ├─────13,568 B (00.05%) ── object12-background │ │ │ ├──────8,800 B (00.03%) ── object16-background │ │ │ ├──────4,096 B (00.02%) ── object12 │ │ │ ├──────3,456 B (00.01%) ── external-string │ │ │ └────────640 B (00.00%) ── xml │ │ ├───4,683,984 B (18.08%) -- unused │ │ │ ├────651,800 B (02.52%) ── shape │ │ │ ├────385,896 B (01.49%) ── base-shape │ │ │ ├────383,808 B (01.48%) ── object2 │ │ │ ├────371,040 B (01.43%) ── object8-background │ │ │ ├────366,080 B (01.41%) ── string │ │ │ ├────356,800 B (01.38%) ── object4-background │ │ │ ├────314,016 B (01.21%) ── object0-background │ │ │ ├────306,400 B (01.18%) ── object16 │ │ │ ├────290,592 B (01.12%) ── object2-background │ │ │ ├────283,456 B (01.09%) ── object4 │ │ │ ├────279,984 B (01.08%) ── type-object │ │ │ ├────225,312 B (00.87%) ── object8 │ │ │ ├────217,120 B (00.84%) ── script │ │ │ ├────102,464 B (00.40%) ── short-string │ │ │ ├─────61,824 B (00.24%) ── object12-background │ │ │ ├─────43,200 B (00.17%) ── object16-background │ │ │ ├─────24,992 B (00.10%) ── external-string │ │ │ ├─────15,360 B (00.06%) ── xml │ │ │ └──────3,840 B (00.01%) ── object12 │ │ └─────152,008 B (00.59%) ── arena-admin Some kinds are very wasteful, e.g. object0-background, object16, object2. Here's an example for a very small B2G compartment: │ │ │ ├──────29,472 B (00.06%) -- compartment(null-principal) │ │ │ │ ├──20,480 B (00.04%) -- gc-heap │ │ │ │ │ ├──19,688 B (00.04%) -- unused │ │ │ │ │ │ ├───3,984 B (00.01%) ── object2 │ │ │ │ │ │ ├───3,984 B (00.01%) ── type-object │ │ │ │ │ │ ├───3,960 B (00.01%) ── shape │ │ │ │ │ │ ├───3,920 B (00.01%) ── base-shape │ │ │ │ │ │ └───3,840 B (00.01%) ── object16-background │ │ │ │ │ ├─────448 B (00.00%) -- used │ │ │ │ │ │ ├──160 B (00.00%) ── object16-background │ │ │ │ │ │ ├──112 B (00.00%) ── base-shape │ │ │ │ │ │ ├───80 B (00.00%) ── shape │ │ │ │ │ │ ├───48 B (00.00%) ── object2 │ │ │ │ │ │ └───48 B (00.00%) ── type-object │ │ │ │ │ └─────344 B (00.00%) ── arena-admin This makes the waste more obvious, but there's no clear path to victory -- at most we could merge the object2 and object16-background kinds. But then, not all the compartments are that small, so that's a bit misleading. Here's a slightly larger B2G compartment: │ │ │ ├──────99,224 B (00.20%) -- compartment([System Principal], resource://gre/modules/FileUtils.jsm) │ │ │ │ ├──69,632 B (00.14%) -- gc-heap │ │ │ │ │ ├──45,640 B (00.09%) -- unused │ │ │ │ │ │ ├───5,568 B (00.01%) ── object8-background │ │ │ │ │ │ ├───4,816 B (00.01%) ── base-shape │ │ │ │ │ │ ├───4,640 B (00.01%) ── shape │ │ │ │ │ │ ├───4,032 B (00.01%) ── string │ │ │ │ │ │ ├───3,968 B (00.01%) ── object0-background │ │ │ │ │ │ ├───3,968 B (00.01%) ── object4 │ │ │ │ │ │ ├───3,888 B (00.01%) ── object2-background │ │ │ │ │ │ ├───3,840 B (00.01%) ── object16 │ │ │ │ │ │ ├───3,360 B (00.01%) ── type-object │ │ │ │ │ │ ├───3,072 B (00.01%) ── object2 │ │ │ │ │ │ ├───2,760 B (00.01%) ── script │ │ │ │ │ │ └───1,728 B (00.00%) ── object4-background │ │ │ │ │ ├──22,976 B (00.05%) -- used │ │ │ │ │ │ ├───7,480 B (00.02%) ── shape │ │ │ │ │ │ ├───6,336 B (00.01%) ── object4-background │ │ │ │ │ │ ├───3,248 B (00.01%) ── base-shape │ │ │ │ │ │ ├───2,496 B (00.01%) ── object8-background │ │ │ │ │ │ ├───1,288 B (00.00%) ── script │ │ │ │ │ │ ├─────960 B (00.00%) ── object2 │ │ │ │ │ │ ├─────672 B (00.00%) ── type-object │ │ │ │ │ │ ├─────160 B (00.00%) ── object16 │ │ │ │ │ │ ├─────144 B (00.00%) ── object2-background │ │ │ │ │ │ ├──────96 B (00.00%) ── object0-background │ │ │ │ │ │ ├──────64 B (00.00%) ── object4 │ │ │ │ │ │ └──────32 B (00.00%) ── string │ │ │ │ │ └───1,016 B (00.00%) ── arena-admin Here are the totals after running MemBench on desktop: │ ├──464.38 MB (47.93%) -- gc-heap │ │ ├──352.66 MB (36.40%) -- used │ │ │ ├───94.30 MB (09.73%) ── object4-background │ │ │ ├───80.31 MB (08.29%) ── shape │ │ │ ├───67.91 MB (07.01%) ── script │ │ │ ├───24.15 MB (02.49%) ── object8-background │ │ │ ├───19.54 MB (02.02%) ── short-string │ │ │ ├───18.74 MB (01.93%) ── type-object │ │ │ ├───18.17 MB (01.88%) ── base-shape │ │ │ ├───11.07 MB (01.14%) ── string │ │ │ ├────5.66 MB (00.58%) ── object2-background │ │ │ ├────4.05 MB (00.42%) ── object2 │ │ │ ├────2.85 MB (00.29%) ── object12-background │ │ │ ├────1.85 MB (00.19%) ── object16-background │ │ │ ├────1.78 MB (00.18%) ── external-string │ │ │ ├────1.12 MB (00.12%) ── object4 │ │ │ ├────0.61 MB (00.06%) ── object0-background │ │ │ ├────0.36 MB (00.04%) ── object8 │ │ │ ├────0.15 MB (00.02%) ── object16 │ │ │ ├────0.02 MB (00.00%) ── xml │ │ │ ├────0.00 MB (00.00%) ── object12 │ │ │ └────0.00 MB (00.00%) ── ioncode │ │ ├──104.99 MB (10.84%) -- unused │ │ │ ├───15.07 MB (01.56%) ── object8-background │ │ │ ├───14.51 MB (01.50%) ── shape │ │ │ ├───13.97 MB (01.44%) ── object4-background │ │ │ ├────7.78 MB (00.80%) ── object2-background │ │ │ ├────7.38 MB (00.76%) ── string │ │ │ ├────7.03 MB (00.73%) ── short-string │ │ │ ├────5.01 MB (00.52%) ── object2 │ │ │ ├────4.44 MB (00.46%) ── base-shape │ │ │ ├────4.39 MB (00.45%) ── object4 │ │ │ ├────3.98 MB (00.41%) ── object0-background │ │ │ ├────3.96 MB (00.41%) ── type-object │ │ │ ├────3.54 MB (00.37%) ── object16 │ │ │ ├────3.16 MB (00.33%) ── object8 │ │ │ ├────3.03 MB (00.31%) ── script │ │ │ ├────2.58 MB (00.27%) ── object16-background │ │ │ ├────2.35 MB (00.24%) ── external-string │ │ │ ├────2.22 MB (00.23%) ── object12-background │ │ │ ├────0.57 MB (00.06%) ── xml │ │ │ ├────0.03 MB (00.00%) ── object12 │ │ │ └────0.00 MB (00.00%) ── ioncode │ │ └────6.73 MB (00.69%) ── arena-admin Again, object0* and object2* cause more problems that they're worth. ---- END Attachment Comment ----
Hmm, jsfun.h has this: #if JS_BITS_PER_WORD == 32 static const js::gc::AllocKind FinalizeKind = js::gc::FINALIZE_OBJECT2_BACKGROUND; static const js::gc::AllocKind ExtendedFinalizeKind = js::gc::FINALIZE_OBJECT4_BACKGROUND; #else static const js::gc::AllocKind FinalizeKind = js::gc::FINALIZE_OBJECT4_BACKGROUND; static const js::gc::AllocKind ExtendedFinalizeKind = js::gc::FINALIZE_OBJECT8_BACKGROUND; #endif So it looks like OBJECT2 will get used a lot more on 32-bit platforms. And OBJECT0 is used for empty arrays in some way that involves shapes that I don't entirely understand but am reluctant to fiddle with. Hmm.
Do we have any data on how often we fail to predict the number of inline slots and we have to use malloc instead? It would be good to monitor this value as well if me make changes here.
> Do we have any data on how often we fail to predict the number of inline > slots and we have to use malloc instead? IIUC Luke correctly, we end up using malloc as well, rather than instead, i.e. the inline slots still get used. (But you're right that it would be interesting.)
Whiteboard: [MemShrink] → [MemShrink][slim:?]
I don't think there's any room for improvement here. Bug 798491 is the best hope for a short-term improvement, and bug 759585 is the full long-term fix.
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: