Differences between revisions 1 and 8 (spanning 7 versions)
Revision 1 as of 2006-10-10 06:12:12
Size: 1264
Comment:
Revision 8 as of 2017-03-22 00:49:28
Size: 0
Editor: mrennekamp
Comment: 2008 page archived by mrennekamp
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= Malloc Replacements =

This page describes possible malloc (or PyMem_Malloc) replacements to be used for memory management in SAGE which is not directly controlled by Python as manual malloc calls, the GMP library etc.

== OMalloc ==
 * currently non-free
 * supposed to be very fast
 * drop-in ?

== DLMalloc ==
 * LGPL
 * used by OMalloc
 * unsure what it does


== libCF old Memory Manager ==
 * GPL
 * default memory manager for libCF
 * ZZ(3) + ZZ(5) with PyMem_Malloc: 8.21 microseconds, with the old libCF memory manager: 7.5 microseconds

== libCF new Memory Manager ==
 * GPL
 * crashed on me ([:MartinAlbrecht:malb]) when trying to use it from withing SAGE
 
== GivMM ==
 * GPL
 * {{{Short description of the Givaro memory mechanism:
each request of sz bytes returns the smallest bloc that contains
at least sz bytes. Each bloc begins by a private data used to store
size information or a pointer. All free blocs are linked in list.
The allocation algorithm search in the corresponding list a free bloc,
before call the system "malloc" routine.
512 different sizes of bloc are predefined.
The maximum bloc size is 8054880 bytes.
For higher bloc, the manager directly call malloc/free of the underlaying system.
}}}