Allocate N elements

monarch_dodra monarchdodra at gmail.com
Mon Jul 15 10:32:37 PDT 2013


On Monday, 15 July 2013 at 15:54:57 UTC, bearophile wrote:
> monarch_dodra:
>
>>> But that (of new arrays) is a bad design, it wastes too much 
>>> memory, and I think it should be fixed. In Python this 
>>> doesn't overallocate:
>>
>> So what? The only thing you showed, is that 
>> minimallyInitialized doesn't know how much it allocated. If 
>> you allocate 513 elements with malloc, you'll way over 
>> allocate too. What's your point?
>> You'll waste memory either way.
>
> I didn't know it, sorry. I forgot.
> Can we let minimallyInitializedArray know the capacity?

I'm working on it ;)

> Regarding the small arrays, so to avoid the memory wasting you 
> need to allocate a larger one and slice it.
>
> Bye,
> bearophile

One of the problems is that when you want an arbitrarily sized 
allocation, it is usually standard to allocate 2^N in size. While 
this is optimal for "traditional" malloc, it's actually the 
*worst* allocation size you could ask for a GC array with 
appendable info (eg, traditional new) :/


More information about the Digitalmars-d-learn mailing list