Running out of memory
bearophile
bearophileHUGS at lycos.com
Thu Dec 27 06:31:45 PST 2012
FG:
> But I also had to write s.length = 0 instead of either s = []
> or s = "".dup.
Also try:
s = null;
> I wonder why GC didn't reclaim the regions previously used by
> the array before it an empty one was assigned to s.
Some explanations are in the article I've linked previously. Most
of the other part of the answer comes from the fact that
currently the D GC is not a precise GC. So randomly inbound
pointers keep large memory chunks alive.
> Now, this delete looks like Python's kind of GC cheating. :)
> Personally, I don't have anything against it, but is it a valid
> practice?
delete is deprecated in D. There is destroy(), and a replacement
for delete in the memory/GC module.
Bye,
bearophile
More information about the Digitalmars-d-learn
mailing list