In-place memory manager, mmap
castironpi at gmail.com
Sun Aug 24 22:36:22 CEST 2008
On Aug 24, 12:19 pm, Kris Kennaway <k... at FreeBSD.org> wrote:
> castironpi wrote:
> > On Aug 24, 9:52 am, Kris Kennaway <k... at FreeBSD.org> wrote:
> >> castironpi wrote:
> >>> Hi,
> >>> I've got an "in-place" memory manager that uses a disk-backed memory-
> >>> mapped buffer. Among its possibilities are: storing variable-length
> >>> strings and structures for persistence and interprocess communication
> >>> with mmap.
> >>> It allocates segments of a generic buffer by length and returns an
> >>> offset to the reserved block, which can then be used with struct to
> >>> pack values to store. The data structure is adapted from the GNU PAVL
> >>> binary tree.
> >>> Allocated blocks can be cast to ctypes.Structure instances using some
> >>> monkey patching, which is optional.
> >>> Want to open-source it. Any interest?
> >> Just do it. That way users can come along later.
> >> Kris
> > How? My website? Google Code? Too small for source forge, I think.
> > --
> Any of those 3 would work fine, but the last two are probably better
> (sourceforge hosts plenty of tiny projects) if you don't want to have to
> manage your server and related infrastructure yourself.
I decided on Google Code. The demo creates 'mappedtree.dat' at 3000
bytes, and allocates or frees memory blocks in it at random. There is
a insert-stress test, and a concurrent read-write test too. Tested on
WinXP with Python 2.5. Have a look.
More information about the Python-list