It was told
on this Blog that the Delphi memory manager (FastMM4 since Borland 2006 -
but it was even worse with the previous "Borland's" MM), doesn't scale well on
multi-code CPU. That is, if you have a multi-threaded application with a lot of
memory handling (e.g. aString := aString+someString), the Delphi MM won't scale
with multi cores. When I mean "don't scale", I mean that the optimistic though
of "my CPU has 4 cores, therefore the same work run in 4 threads will be 4
times faster than with 1 thread" is false. It performs even worse with multiple
threads than with 1 thread...
So we went into forking a nice project, named ScaleMM, and created our scalable
optimized MM, named SynScaleMM. Our forked
modifications were even included in the main ScaleMM branch.
During my profiling of our SynScaleMM, I discovered some very nice results
with Delphi compiler inlining features.