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
out.
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.
https://code.google.com/p/sapmm
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
welcome!
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
our site.
(but it probably will never be updated - you are warned)