Do you remember this former article about scalability of the Delphi memory manager, in multi-thread execution context?
Our SynScaleMM is still experimental.
But did pretty well, for an experiment!
At first, you can take a look at ScaleMM2, which is more stable, and based on the same ground.
But a new multi-thread friendly memory manager for Delphi just came
It is in fact the anonymous (and already famous) "NN memory manager" Primož talked about in his article about string building and memory managers.
(Note that in this article, our SynScaleMM was found to be scaling very well, but on the other hand, Primož did compile its benchmark program in Debug mode, so our
TTextWriter was not in good shape:
when you compile in Release mode, optimizations and inlining are ON,
and our good
TTextWriter just flies... See the note at the
beginning of the article - this is why I never find those benchmarks very
informative. I always prefer profiling from the real world with real useful
process… and was never convinced by any such naive benchmark.)
OK, back to our business!
SapMM is an interesting beast.
Sounds like if Alexei (the initial coder) has a C coding background. But
that's fine when you have to deal with low-level structures and algorithms, as
required by a memory manager.
It features everything we may ask for such a piece of code: clear design, optimized code (mostly by inlining process), memory leak reporting, some parameters for tuning.
It is only for Delphi XE (and up) under Win32 by now, but contributors are
It is used in production since more than half a year, and it passed all FastcodeMM benchmark tests.
If you want a direct link of the today's source code, without SVN, you may
try this direct link from
(but it probably will never be updated - you are warned)