Pop quiz [memory usage]

Sean Kelly sean at invisibleduck.org
Sat Jun 6 21:59:39 PDT 2009


Steve Schveighoffer wrote:
> 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);
> }

auto str1 = "hello".idup;
auto str2 = str3 = str1;
str2 ~= " world";
str3 ~= " garbage";

Doesn't seem terribly safe to me.



More information about the Digitalmars-d mailing list