Yamal - Yet Another Memory Allocation Library

A universal purpose allocator. Can speed up your C++ programs. Can be used between your default implementation of libc and your application.

As you already know, the memory management is the slowest part of all C and C++ elements. To make it faster we have concipated this allocator. It uses the well known array approch for small objects. See the paper news for more...

Yamal uses a fix memory page model. It assumes that the pages are aligned, so it can deduce the start of the page for an adress. If you ever used a 8086 segment model you should recognise some similarities. Yamal uses the adress of the freed object to deduce the page start and the offset of the object within the page. So it is simple to find the organisational elements for the object.

Or, simply said:

Freeing is nearly as fast as reserving.

Beside this, it uses many seperate lists of pages which is good in parallel architectures. Multithreading is supported in a - nearly - natural way.

Yamal is defined in C. It was testet with Red Hat 7.1 as a patch for the glibc 2.2.2. The system boots without problems. KDE, emacs and gcc runs without problems.

For C++ you can use Yamal with a global overwritten operator new and delete. For GNU g++ this works instantly for the hole library. For VC 6 you can only replace on a translation unit base. This seems to be a DLL Model problem of the runtimelibrary (sign !).

A commercial version for gathering statistics will be developed.

A second commercial version with special string functions to catch memory corruptions will be available, too.<

Sources:

zip 1.0.0

tar gzip 1.0.0