From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2008-04-22 14:44:37


AMDG

shiwei xu wrote:
> Most of the C++ programmers do not benefit from "Garbage Collection"
> technique (GC). They are sick of deleting objects but have to do this.
> There are some C/C++ memory GC implementations, but they are complex
> and are not widely used.
>
> I am going to introduce a new memory management technique named "GC
> Allocator". "GC Allocator" isn't an implementation, but a concept.
> Now, we have two "GC Allocator" implementations, named "AutoFreeAlloc"
> and "ScopeAlloc".
>
> This article consists of three parts:
>
> 1. What is GC Allocator?
> 2. GC Allocator implementations: ScopeAlloc and AutoFreeAlloc
> 3. Applications based on GC Allocator
> For more information, see
> http://www.codeproject.com/KB/cpp/gc-allocator.aspx
>
> To obtain a copy of this paper in pdf format click
> here<http://xushiwei.com/local--files/gc-allocator/GCAllocator.pdf>(or
> from google
> code <http://code.google.com/p/stdext/downloads/list>).

If I understand correctly, your GC allocators delete all
allocated blocks when the allocator itself is destroyed,
or can be explicitly forced to free everything. Basically,
this works by imposing a hard upper bound on the lifetime
of a group of objects, rather than dealing with them separately.
I think that this is useful in some contexts. (Enough that I implemented
a simple version about a year ago). However, it is not
always applicable. Consider your List template. As I understand
it, if I have a List that exists for the duration of the program,
and I am often adding and removing elements, then the
memory for the elements will just build up until the List
is destroyed.

In Christ,
Steven Watanabe