Using SoftReferences for caching

From: Jesper Nordenberg (megagurka_at_yahoo.com)
Date: 02/12/04


Date: 12 Feb 2004 00:50:36 -0800

I'm writing an application where I have a memory cache of objects
stored on disk. There are no limitations on the object sizes, one
object can be as large as the heap. A long value is used to identify
an object, so there can be a huge amount of objects.

I want to use a fixed amount of the heap or all the available heap for
the cache. I can't cache a fixed number of objects since I don't know
how how much memory an object occupies, and thus the program can run
out of memory. So, using SoftReferences seems like a good solution.
One problem is that the HashMap used in the cache can become very big
and needs to be cleared of SoftReferences that has been nullified.

If someone have some implementation or design suggestion that would be
great. Maybe there is some open source project that implement a
similar cache?

/Jesper Nordenberg



Relevant Pages

  • Re: Cached memory never gets released
    ... Stock linux 2.4.26 kernel. ... Due to flash bug 3M of memory gets lost due to font memory getting lost ... The output of "free" cache number steadily grows. ... longer to exhaust all of system memory with the cache. ...
    (Linux-Kernel)
  • Re: Problem: Creating a raw binary string
    ... > While its true that a 64-bit cpu will move twice the data per instruction it ... > Memory bus width plays an important role here and unless it too is widened / ... You are forgetting the two levels of cache in the processor. ... The memory chips are addressed in Row col fashion. ...
    (alt.comp.lang.borland-delphi)
  • Re: Is Greenspun enough?
    ... Most OSes memory map executables directly from the file system so code doesn't pollute the file cache or swap space. ...
    (comp.lang.lisp)
  • Re: Superstitious learning in Computer Architecture
    ... Without a LOT of logic or some other better approach, re-executing the instructions requires re-decoding and it ties up the cache memory bus transferring more data as instructions than the instructions are working on. ... The concept of cache is fundamentally flawed in that it STILL restricts access to one word per clock cycle, when a single modern ALU can easily use 5 plus whatever is eaten up with instruction accesses. ... The size of an optimizing compiler is proportional to the SQUARE of the size of the language times the SQUARE of the complexity of the machine - because all interactions must be considered. ...
    (comp.arch.arithmetic)
  • Re: FPGA-based hardware accelerator for PC
    ... I know that in most cases the CPU ... that it contsins no cache, as BRAMs are too precious resources to be wasted ... The BRAMs are what define the opportunity, ... many threads with full associativity of memory lines using hashed MMU ...
    (comp.arch.fpga)