On 03 Apr 2010, at 13:00, C Western wrote:

> I notice that the cmem unit does not align memory in the same way as the 
> default unit - removing the cmem unit makes a factor of two difference in the 
> speed of some double precision matrix code. (My system is i386). Inspecting 
> the cmem unit indicates the issue is the extra bytes allocated for the count 
> - is this really needed?

It is to be able to implement the same checking as the Pascal version has (give 
a run time error in case someone calls freemem(p,size) with the wrong size).

BSD variants have a malloc_size() function that could be used instead, but at 
least Solaris and Linux don't seem to have something similar.

> Or do we have to allocate more bytes for blocks that are a multiple of 8?

FPC's default memory manager even guarantees 16 byte alignment (for vectors).


Jonas_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to