Pop quiz [memory usage]

Steve Schveighoffer schveiguy at yahoo.com
Sat Jun 6 20:23:54 PDT 2009


On Sat, 06 Jun 2009 12:03:03 -0700, Sean Kelly wrote:

> bearophile wrote:
>> Sean Kelly:
>>> Particularly in D2 where append
>>> operations on arrays are probably less common as a result of string
>>> being invariant.
>> 
>> They aren't much common maybe because they are currently dead-slow.
>> Appending to an immutable string is a common operation. But I guess
>> Array appenders will get more common...
> 
> Yes but appending to an immutable string is never performed in place,
> which is the only time the extra space reserved by newCapacity matters.
>   I suspect the memory wasted by newCapacity is more of an issue than
> any time savings it provides.

What gave you that idea?

void main()
{
  auto str1 = "hello".idup;
  auto str2 = str1;
  str1 ~= "world";
  assert(str1.ptr == str2.ptr);
}

-Steve



More information about the Digitalmars-d mailing list