LRU cache for ~=

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Mon Oct 19 17:09:28 PDT 2009


dsimcha wrote:
> == 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.

This happens whether or not a cache is in use.

Andrei



More information about the Digitalmars-d mailing list