Changes between Version 1 and Version 2 of MemManage


Ignore:
Timestamp:
Jul 4, 2008, 7:51:05 AM (11 years ago)
Author:
cameron
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MemManage

    v1 v2  
    11= Memory Management Architecture =
    22
    3 Parabix needs a memory management architecture but doesn't have one yet.
     3The Parabix memory management architecture is designed to
     4allow highly efficient management and use of memory from a
     5variety of perspectives.
     6
     7 1. Streaming Buffers
     8 2. Coterminal String Pools
     9 3. Depth-indexed DOM
     10
     11== Coterminal String Pools ==
     12
     13A Coterminal String Pool is an efficient managed storage space
     14for strings that are to be maintained until a common time of
     15destruction.  That is, each string is maintained without the
     16possibility of individual deallocation until such time as the
     17entire pool is destroyed.
     18
     19The Coterminal String Pool avoids the memory management overhead
     20(free list maintenance, block merging) and memory fragmentation
     21that result from individual string allocation and deallocation
     22with new and delete.  Because the strings are maintained in a
     23coterminal fashion, the associated space may be returned to the
     24system as a single block when the pool itself is deallocated.
     25
     26=== Statically-Allocated Initial Buffer ===
     27
     28The Coterminal String Pool is designed to use a statically
     29allocated initial buffer of a size specified by a template
     30parameter.  This buffer is allocated at the same time as,
     31and as part of, the pool object itself.  This is particularly
     32useful for efficient cost-free allocation and deallocation
     33if pool objects are allocated on the stack.
     34