Often repeated array allocations
Namespace
rswhite4 at googlemail.com
Sun Jul 21 14:19:32 PDT 2013
> My analogy goes as follows: a chunk of memory for temporary
> needs => scratch pad (as in sheet of paper for quick
> notes/sketches).
>
> Something along the lines of:
>
> class A{
> static float[] buffer;
> static this(){
> buffer = new float[as_big_as_it_gets];
> }
>
> void foo(){
> float[] tempAlloc = buffer[0..need_this_much];
> tempAlloc[] = 0.0;
> ...
> }
> }
>
> As long as foo is not called recursively should just work.
> Other thing that may wreck this is if foo is called in Fiber
> context and uses yeild internally.
>
> One may as well fall back to option 3 in rare cases where
> scratch pad is too small to fit the bill.
I really like the idea.
I've changed it a bit:
I have a float[1024] buffer which is used, as long as the
requested size is less than 1024. If it's greater, I will
temporary allocate the whole array with new float[Size];
Any improvements? Or is 1024 to small / big?
More information about the Digitalmars-d-learn
mailing list