Memory Manager Challenge v.1

The objective is to build the fastest replacement for the Delphi Memory Manager.

The following operating systems are supported:
Win95, Win98, WinME, WinNT, Win2000, WinXP, Win2003, Win64.


It is allowed to use any Fastcode function such as Move and FillChar.
Allocations must be at least 4 byte aligned.
All allocations must end at a 4 byte aligned address
The MM can use the 0-3 bytes at the end of blocks.
It is not allowed to use the patching principle for using any functions such as FastMove and FastFillChar.
There are two targets:
RTL Replacement. Same rules as for the standard RTL Replacement Target.
No CPU ID based selection of code is allowed.
Free blended: CPU ID based selection of code is allowed. All possible instructions are allowed. Must run on all processors from 486 and forward.
A valid entry for a given target gives 25 points.
Only one entry per target gives points.
A target winner gives 250 points
A target second place gives 150 points
A target third place gives 100 points
A target fourth place gives 50 points

Validation and Benchmark Tool:

Change Log:

FastCode Memory Manager B&V 1.1.3 - 24-Jan-2005

Added FastMM3 back to the batch files.

FastCode Memory Manager B&V 1.1.2 - 20-Jan-2005

Included D6 and D7 benchmarks in batch files
Removed D2006 benchmarks and validations from batch files. These will be added back in for the 2006 competition.
Removed Nexus. It was locking up on benchmarks.

FastCode Memory Manager B&V 1.1.1 - 11-Jan-2005

Removed Validate29. This may be added back at a later time.
Run validations and benchmarks with slightly different compiler settings. This means that twice as many copies of FastcodeMMChallengeBV are built.
- Validations have Range and Overflow checking turned on.
- Benchmarks have Range and Overflow checking turned off.
After every successful write of the XML log file, a backup is made. This way, if an out of memory error leaves you with a zero byte file, you can recover up to the previous successful test.


FastCode Memory Manager B&V 1.1.0 - 6-Jan-2005

Added a -RV flag to FastcodeMMChallengeBV to make it easier to run Regular and Extra validations separately from the command line.
Cleaned up the batch files to make them more flexible and make the output cleaner.
Note: Tests have not changed between 1.0 and 1.1.


FastCode Memory Manager B&V 1.0.0 - 4-Jan-2005 Applied fixed BUCKETMM_ASM and added it back to tests
Added Dennis' BucketMMDKC_ASM - a slightly
Added the latest DKC_IA32_MM - 0.27.
Added the latest FastMM - 4.56.
Modified Validate13
Added Validate29
Recording more CPU details in the MMChallenge.xml result file.
FastCode Memory Manager B&V 0.56 - 12-Dec-2005
Added the latest DKC_IA32_MM - 0.24.
Added the latest FastMM - 4.52.
Added new FastcodeCPUID and FastcodeMoveCPUID units from dennis.
Added new benchmark SingleFPBenchmark2 from Dennis.
Updated the descriptions of Pierre's benchmarks to include his name.
Changed the description of the ArrayUpsizeSingleThread benchmark with Dennis' new text.
Added Delphi 2006 support. Delphi 2005 is still the base compiler for benchmarks.
FastCode Memory Manager B&V 0.55
- 0.55 was started but Some of the ToDo items changed. It was skipped to help avoid confusion.
FastCode Memory Manager B&V 0.54 - 28-Oct-2005
Added the latest DKC_IA32_MM - 0.18
Added the latest FastMM - 4.46
- Made sure the compiler defines are correct for FastMM and FastMM_16

Summary report for Memory Manager challenge 0.56 2005-dec-20 18:08:20

Compiler: Delphi 2006
AMD Opteron(tm) 64 Processor 240 (AuthenticAMD, type 0, family 00F, model 05, stepping 1), 1400,0 MHz
Windows XP (NT.5.1.2600)

Average Total Performance: (Scaled so that the winner = 100%)
BucketDKCMM_Asm : 92,0
BucketMM : 87,6
BucketMM_Asm : 91,0
EWCMM : 55,6
FastMM3 : 92,4
FastMM4 : 99,9
FastMM4_16 : 98,7
RTLMM : 100,0
TopMM : 33,5

Average Speed Performance: (Scaled so that the winner = 100%)
BucketDKCMM_Asm : 86,8
BucketMM : 76,7
BucketMM_Asm : 84,8
EWCMM : 31,7
FastMM3 : 76,3
FastMM4 : 99,5
FastMM4_16 : 98,1
RTLMM : 100,0
TopMM : 37,3

Average Memory Performance: (Scaled so that the winner = 100%)
BucketDKCMM_Asm : 97,9
BucketMM : 98,7
BucketMM_Asm : 98,6
EWCMM : 80,2
FastMM3 : 95,7
FastMM4 : 100,0
FastMM4_16 : 99,1
RTLMM : 98,9
TopMM : 23,3

Tables Of Results 1.1.3:

v 1.1.3 Progress Report
Full test results for Athlon AMD64 3400+ WinXP
The Last Prescott HT Results
WinME Validation Results
Prescott D6 Validation Results
Dothan D2005 Results
Dothan D2005 DKCMM Benchmark Result
Dothan D6 Validation Results
Dothan D7 Complete Results
Northwood D2005 Results
Northwood D6 FastMM3 Validation Results
Northwood WinME Final but not complete
Northwood WinME D6/D7/D2005 Results DKCMM
Northwood WinME Results. DKCMM Benchmarks Incomplete
Most of Remaining Opteron WinXP Results
Opteron D2005 DKCIA32MM Benchmark Result
Opteron D2005 FastMM3 Results
Opteron D7 DKCMM Benchmark Results
D6 Opteron FastMM3 Validation
Final Opteron Results
Incomplete P3 Celeron WinXP Results
Last Prescott HT off Results
Prescott D2005 Results
Prescott D2005 FastMM3 Validation Results
PrescottHT D6 DKCMM Benchmark Results
Prescott HT= on D6 FastMM3 Results
Prescott HT=off D2005 FastMM3 Results
Prescott HT off D7 FastMM3 Results
Sempron D5 FastMM3 Validation Results
DKCMM D7 Prescott Validation

Mem Manager Versions: (bug fixed by DKC) (Sligthly Optimized by DKC ) (DKC Memory Manager Version 0.27 )


E Link Replay Logs (7zip)
E Link Replay Logs (zip)
LinkCom+Server Replay Logs (7zip)
LinkCom+Server Replay Logs (zip)
Web Broker Replay Log (7zip)
( was removed due to size constraints).
Reservations_System_MMUsage Log (7zip)
Reservations_System_MMUsage Log (zip)
XML Replay Log (7zip)
( was removed due to file size constraints)
BC3 Replay Log (7zip)
BC3 Replay Log (zip)
Document Classification Replay Log (7zip)
( was removed due to file size constraints)
All Log Files (zip and 7zip) (removed due to file size constraints)
MM Usage Replay Analyzer (zip)

MM LITE: A special version with reduced validation and benchmark

MM LITE Benchmark and Validation Source Files
MM LITE D7 & D2006 Informative Results. Latest Nexus for D2006
MM LITE P2 Celeron WinXP Results
MM LITE P2 Celeron XP D2006 Results