BrainMM is an alternate memory manager for Delphi. There are a number of benchmarks between FastMM and BrainMM provided. This is an open source project over on Github. With time the project will grow to the level of standard Delphi/C++ Builder supply, along with other great libraries. Supports of all operating systems envisaged by Delphi and C++ Builder. BrainMM memory manager features:
- Extremely high performance (not fully implemented);
- No locks for memory pieces up to 32Kb;
- DLL-shared memory (Delphi/FPC compatibility);
- Guaranteed aligned address for 16 bytes. It is useful for lock-free algorithms, SEE operations and in general at memory reading/writing/copying;
- RegetMem function. Functionally similar to ReallocMem, but does not guarantee data safety, that is why in some cases it can work faster;
- GetMemAligned function. Allows allocating memory with specific alignment. This memory is released in a standard way, via FreeMem. When the size is changed using ReallocMem/RegetMem, the alignment is preserved. The exception is when NewSize equals zero, in this case, FreeMem shall be induced and alignment information will be lost;
- API for memory block allocation (not fully implemented). BrainMM memory blocks are memory pieces of specific granularity, the size of which is unchangeable. Memory blocks are useful for highly specialized performance-demanding memory management. Service information can be stored at the beginning of the block, access to this information may be received by applying the logical multiplication (and) operation to the pointer. The management of small (up to 128 bytes) and medium (up to 32Kb) memory pieces in BrainMM is performed, for example, with the help of blocks of 64Kb;
- API for work with memory pages (not fully implemented);
- Memory leaks reporting (not fully implemented), standard ReportMemoryLeaksOnShutdow flag;
- Finalizations fixes (QC #103616).
Extended Memory API
[crayon-6742902b8a02e302701655/]
You can find and download BrainMM from the link below: