[Vm-dev] Spur Object 64 bit format
eliot.miranda at gmail.com
Tue Nov 12 18:24:14 UTC 2013
On Tue, Nov 12, 2013 at 3:56 AM, Clément Bera <bera.clement at gmail.com>wrote:
> By the way as you are talking about Immediate objects tags and Spur's
> object representation, I read on other VMs reports that it is faster in
> overall performance to have pointers tagged with the xxx1 and SmallIntegers
> tagged with xxx0, because SmallIntegers arithmetics is then much faster. Is
> it possible to modify that easily in Cog to try ? Do you have to edit only
> a few methods such as #longAt:, #integerValueOf: and SmallInteger
> primitives ?
> Another thing, I read in a java VM report that only 1% of objects needs a
> hash (other objects hash are unused), so their hash implementation took
> only 2 bits in the header, being:
> 01 -> no hash
> 10 -> hash is the object's address
> 11 -> hash is in a header extension
> Therefore, on first access to the hash, hash bits switches from 01 to 10,
> and the GC on objects with 10 switches the hash bits from 10 to 11 and add
> a header extension with the old address of the object. But I know I'm not
> teaching you anything there. What I would like to know is why did you
> choose in Spur to have a 22bits hash in the header over this
> implementation, and will the hash in Spur be calculated at each
> instantiation or lazily ?
> Thanks for any answers,
> Regards, Clement
> 2013/11/12 Henrik Johansen <henrik.s.johansen at veloxit.no>
>> On 12 Nov 2013, at 11:55 , Henrik Johansen <henrik.s.johansen at veloxit.no>
>> nterest ~= time and: [skills]
>> OT: I swear, missing parenthesis will be the death of me!
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Vm-dev