new Type[count] takes too much?
Jonathan M Davis
jmdavisProg at gmx.com
Thu Oct 31 02:52:49 PDT 2013
On Thursday, October 31, 2013 10:15:51 Namespace wrote:
> I'm sure we had already this conversation but I don't find the
> thread.
>
> T[] buffer = new T[N]; assumes more space than stated (in average
> 2010 elements more. See: http://dpaste.dzfl.pl/af92ad22c). It
> behaves exactly like reserve and that is IMO wrong. If I reserve
> memory with buffer.reserve(N), I want to have at least N
> elements. That behaviour is correct. But if I use new T[N] I
> mostly want exactly N elements and no extra space.
>
> Thoughts?
You're making the assumption that it would be normal to not want to then
append to something you allocated with new T[N], and I don't think that that's
a valid assumption. Also, from what I understand of how allocators work, they
normally grab memory in sizes which are a multiple of 2, so I would expect it
to be highly abnormal to ever get exactly the amount of memory that you
requested. You're pretty much always going to get extra.
- Jonathan M Davis
More information about the Digitalmars-d-learn
mailing list