Policy: alloca vs. malloc?

Siddhesh Poyarekar siddhesh.poyarekar@gmail.com
Fri Jun 8 06:38:00 GMT 2012


On 8 June 2012 11:54, Paul Eggert <eggert@cs.ucla.edu> wrote:
>> the only
>> 'memory optimization' to speak of here is the malloc chunk overhead on
>> the heap, which isn't much to brag about.
>
> Sorry, I don't follow.  Both versions use the same amount of heap memory.
> When using the stack, the alloca version allocates fewer bytes than the
> non-alloca version.  Granted, this is not a huge amount of memory savings
> (it's bounded by the size of the local array) but it does save some space.
>
> I tried to clarify this by changing the wording to the following:
>
>   Use of {{{alloca}}} is a memory optimization. That is, the above example
>   is close in behavior to the following, except that the {{{alloca}}}
>   version consumes only the stack space needed, rather than always consuming
>   approximately 4000 bytes on the stack.

I thought you meant memory optimization to be alloca vs malloc when
you could have done a malloc straight away, which is why I mentioned
the chunk overhead being the only saving. Your clarification above
seems to imply savings due to doing alloca when one could have
declared a local array of the max size. Is that what it is? It
probably needs to be even clearer, something like:

    Use of {{{alloca}}} is a memory optimization compared to having a
local array on stack...


-- 
Siddhesh Poyarekar
http://siddhesh.in



More information about the Libc-alpha mailing list