Alexandre Buisse wrote:
So we add a level of indirection: objects consist of a header and the actual data. Headers are allocated once and for all at object creation and do not move. [...] The big disadvantage of this approach is that we use one or two words (if objects need to know where their header is, which seems reasonable) per object.
AIUI, another effect of adding another indirection to every pointer lookup, is that it will place a little extra stress on the memory caching systems, as two regions will need to be accessed continually. Sam.