[Vm-dev] #becomeUncompact not longer works in Cog/Stack VMs
Bert Freudenberg
bert at freudenbergs.de
Sun May 8 14:39:13 UTC 2011
On 08.05.2011, at 09:39, Mariano Martinez Peck wrote:
> On Sun, May 8, 2011 at 6:54 AM, Eliot Miranda <eliot.miranda at gmail.com> wrote:
>> Determining the class of an instance of a compact class is faster than determining the class of an instance of a non-compact class if the compact class index is known.
>
> This is what I don't understand. Even if the compact class index is known, why is it that faster than non-compact? because in non-compact you need to fetch the class pointer from the object header?
> But... regardless that the compact class index is know, you also have to get the index (those 5 bits) from the OH. So I don't see why there is so much difference in performance.
The difference is that the index can be compared to a *constant*. If the index is 6 (or is it 5?) then this is a Float instance. No matter where in memory the Float class actually is. It's almost like a tag bit for classes, similar to the tag bit to distinguish immediate SmallIntegers.
- Bert -
More information about the Vm-dev
mailing list