-malign-double

Jed Brown jed at 59A2.org
Mon Nov 16 14:59:40 CST 2009


Jed Brown wrote:

>  malloc4 1000000 loops in 1412541359 cycles, average 1412.541359
>  malloc1 1000000 loops in 298137728 cycles, average 298.137728
>
> If there is an extra allocation between malloc and free, we get
> 
>   malloc4 1000000 loops in 1667959560 cycles, average 1667.959560
>   malloc1 1000000 loops in 538137819 cycles, average 538.137819
> 
> Clearly glibc is optimized for freeing the very last thing allocated.

I should elaborate.  What I had actually done is to do an extra
malloc/free on every other iteration.  So 596 cycles for two
malloc/frees in two iterations, 1076 for three malloc/frees in two
iterations, suggesting that this extra malloc/free costs significantly
more than the one on top of the stack.  That should explain why 4 per
loop takes more than 4 times as long as 1 per loop.

Jed

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 261 bytes
Desc: OpenPGP digital signature
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20091116/920c644f/attachment.sig>


More information about the petsc-dev mailing list