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