FastMM is a fast replacement memory manager for Embarcadero Delphi applications that scales well across multiple threads and CPU cores, is not prone to memory fragmentation, and supports shared memory without the use of external .DLL files.
under webbroker standalone webserver, running apachebench ab -n 10000 -c 100 -k -r http://192.168.1.150:8080/ ->
FastMM5 executable is faster identical at Intel TBB (both 11k reqs/sec)
but with a benchmark TParallel.For I get ->
Parallel For used : 1030549 ticks / BlockThreadContentionCounts: 0/2327401/0
ThreadContention testing reported critical areas - consider to increse the corresponding CFastMM_XXXXXBlockArenaCount constant
with TBB Parallel For used : 202024 ticks (5 times quicker on I9 8/16 core)
in a single thread benchmark poker game ->
2M with TBB
2650k with FMM4
2750k with FMM5
so actually for single thread apps FMM5 wins by a few margin over FMM4
meantime I did a real test on FastMM5 ->
under webbroker standalone webserver, running apachebench ab -n 10000 -c 100 -k -r http://192.168.1.150:8080/ ->
FastMM5 executable is faster identical at Intel TBB (both 11k reqs/sec)
but with a benchmark TParallel.For I get ->
Parallel For used : 1030549 ticks / BlockThreadContentionCounts: 0/2327401/0 ThreadContention testing reported critical areas - consider to increse the corresponding CFastMM_XXXXXBlockArenaCount constant
with TBB Parallel For used : 202024 ticks (5 times quicker on I9 8/16 core)
in a single thread benchmark poker game ->
2M with TBB
2650k with FMM4
2750k with FMM5
so actually for single thread apps FMM5 wins by a few margin over FMM4
but for multithread should be tuned?
I forward this post to the author of FMM.