July 05, 2007 Re: Set array size to simplify mem mgmt | ||||
---|---|---|---|---|
| ||||
Oskar Linde Wrote:
> Ald skrev:
> > Hello.
> >
> > I have the following code:
> >
> > char[] unitStack = new char[256];
> > unitStack.length = 0;
> >
> > Does it make sense from viewpoint of simplifying memory management? If I enlarge the size, the array won't be reallocated?
>
> That is equivalent to reserving 256 chars. Enlarging the unitStack will not cause reallocation for at least the first 256 entries.
>
> --
> Oskar
What sort of guarantee there is that the memory manager will not give the 127th through 255th chars to somebody else?
|
July 05, 2007 Re: Set array size to simplify mem mgmt | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ald | Ald skrev: > Oskar Linde Wrote: > >> Ald skrev: >>> Hello. >>> >>> I have the following code: >>> >>> char[] unitStack = new char[256]; >>> unitStack.length = 0; >>> >>> Does it make sense from viewpoint of simplifying memory management? If I enlarge the size, the array won't be reallocated? >> That is equivalent to reserving 256 chars. Enlarging the unitStack will not cause reallocation for at least the first 256 entries. >> >> -- >> Oskar > > > What sort of guarantee there is that the memory manager will not give the 127th through 255th chars to somebody else? The 256 bytes form a continuous chunk. As long as any reference (pointer) to any element within that chunk exists, the GC will not reclaim any part. unitStack.length = 0; will not change unitStack.ptr. -- Oskar |
Copyright © 1999-2021 by the D Language Foundation