On Sunday, 21 July 2013 at 21:35:15 UTC, Namespace wrote:
On Sunday, 21 July 2013 at 21:31:08 UTC, bearophile wrote:
Namespace:
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];
That's one of the ways I solve similar problems.
Any improvements? Or is 1024 to small / big?
An idea is to add some debug{} code that computes statistics
for the array sizes...
Bye,
bearophile
Too much effort. But if some of you have this experiences
already, I would gladly profit from them. ;)
It would really help to know what your function is doing exactly.
Personally, I think you are over thinking it. Just do this:
//----
void foo ()
{
static float[] scratchPadBuffer;
// use scratchPadBuffer here
}
//----
And simply make buffer grow as it needs, and never shorten it.
You could consider this to be "controlled leak" I guess. But at
least, with this approach, you can't "guess wrong", and you'll
only very rarely allocate.