[Python-Dev] Alignment assumptions

Jack Jansen Jack.Jansen@oratrix.com
Thu, 28 Feb 2002 22:34:05 +0100


On donderdag, februari 28, 2002, at 07:57 , Tim Peters wrote:

> [David Abrahams]
>> A quick grep-find through the Python-2.2 sources reveals the 
>> following:
>>
>> Include/dictobject.h:49: long aligner;
>
> This is in
>
> #ifdef USE_CACHE_ALIGNED
> 	long	aligner;
> #endif
>
> and AFAIK nobody ever defines the symbol.  It's a cache-line 
> optimization
> gimmick, but is effectively a nop (except to waste memory) on 
> "almost all"
> machines.  IIRC, the author never measured any improvement by 
> using it (not
> surprising, since I believe almost all mallocs at least 8-byte 
> align now).
> I vote we delete it.

MacPython uses it. At the time it was put in it caused a 15% 
increase in Pystones because dictionary entries were aligned in 
cache lines. But: this was in the PPC 601 and 604 era, I must 
say that I've never tested whether it made any difference on G3 
and G4.

Put in a bug report in my name, and one day I'll get around to 
testing whether it still makes a difference on current hardware 
and rip it out if it doesn't.
--
- Jack Jansen        <Jack.Jansen@oratrix.com>        
http://www.cwi.nl/~jack -
- If I can't dance I don't want to be part of your revolution -- 
Emma Goldman -