In the alioth "benchmark game"
https://benchmarksgame.alioth.debian.org/ , the performance of FPC for the "binary tree" test is very poor: FPC 36.4 secs vs. C++ 2.55 secs. The test is all about allocating and deallocating atomic chunks of memory, and the code provided does this rather inefficiently by calls to GetMem()/FreeMem().
I now added memory pooling, using unit pooledmm, which decreased runtime by approximately factor 5. Then added threading support (unit mtpocs), but the performance went down dramatically. Obviously the standard memory manager performs rather poorly for this test case. But when using cmem, the code runs approximately 8-10 x faster than the original. This is all under windows.
Can someone please test this with Lazarus 64bit under linux, preferrably on a quad core machine ? With argument 21, the runtime should be below 5 seconds.
Note: Run the exe from a shell, because performance is VERY poor when running inside the Lazarus IDE (at least unter windows).