LRU cache for ~=

dsimcha dsimcha at yahoo.com
Mon Oct 19 16:34:34 PDT 2009


== Quote from Andrei Alexandrescu (SeeWebsiteForEmail at erdani.org)'s article
> dsimcha wrote:
> > Started playing w/ the implementation a little and I see a problem.  What about
> > the garbage collector?  There are two possibilities:
> [snip]
> > The only possible solutions I see would be to have the GC know everything about
> > the LRU cache and evict stale entries (probably slows down GC a lot, a huge PITA
> > to implement, couples things that shouldn't be tightly coupled), or clear the
> > cache every time GC is run (probably would make appending so slow as to defeat the
> > purpose of having the cache).
> I think GC.collect may simply evict the entire cache. The collection
> cycle costs so much, the marginal cost of losing cached information is
> lost in the noise.
> Andrei

But then you have to copy the whole array again, likely triggering another GC if
the array is large.  Then things really get ugly as, for all practical purposes,
you've completely done away with the cache.



More information about the Digitalmars-d mailing list