On Mon, 19 Dec 2011 12:24:18 -0500, Bear <joanylepri...@yahoo.fr> wrote:
gc.malloc actually returns void[]
http://www.d-programming-language.org/phobos/core_memory.html#malloc
Looks like void* to me...
Or is there another function I'm not aware of? I think it should be
GC.malloc, not gc.malloc, so maybe I'm missing something...
Bearophile's suggestion seems to work though, but it doesn't seem to
improve
performance for some reason... I guess I'll have to find some other way
to make my
prog quicker.
Actually, an issue with bearophile's suggestion is that it allocates a
block marked as containing pointers. Such a block is bulk-initialized to
0.
Try this:
float[] f = (cast(float*)GC.malloc(x * TF.sizeof, GC.BlkAttr.NO_SCAN))[0
.. x];
This will leave the memory uninitialized.
And depending on the usage, this optimization may or may not make a huge
difference.
-Steve