On Tue, Nov 5, 2013 at 3:57 PM, Ben Kloosterman <bkloo...@gmail.com> wrote:

>
>>
>> Right now, MemHeader structures are allocated from an array. If we
>> switched to an array of* references* to MemHeaders, we would effectively
>> add a word to the cost of every MemHeader. We simply don't *have* an
>> additional word for these structures.
>>
>
> If your header is 1 byte and you have no vtable for these objects , then
> the header has no cost  unless the header is exactly 16 bytes.  Even in an
> array these objects are likely to be aligned.
>

They are aligned to a 4 byte boundary. In the Coyotos case we would simply
be turning off GC entirely, since we never release storage. That would let
us eliminate the GC header entirely. In monolithic kernels that probably
wouldn't be an option.


> One think is worth noting is many of these structures are static and exist
> for the whole life of the program .. as you keep mentioning you dont put
> them on a heap.
>

Unfortunately that's not correct. They are allocated once at startup time
and then kept for the life of the system, but they aren't static. The size
of the respective arrays is a function of available physical memory.

As you note, these objects are definitely "known live".


shap
_______________________________________________
bitc-dev mailing list
bitc-dev@coyotos.org
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to